Mwongozo wa Kutumia Hooks
Ultimate Multisite inatoa zaidi ya hooks za matukio (action hooks) 200 na hooks za kuchuja (filter hooks) 280. Ukurasa huu unazunguka hooks zinazotumika zaidi kwa mifano halisi. Kwa rejea kamili inayojitengeneza kiotomatiki, tembelea kurasa zingine katika sehemu hii.
Action Hooks (Hooks za Matukio)
Customer Lifecycle (Mzunguko wa Maisha ya Mteja)
After Customer Creation (Baada ya Kuunda Mteja)
/**
* @param WP_Ultimo\Models\Customer $customer
*/
add_action('wu_customer_post_create', function($customer) {
wp_mail(
$customer->get_email(),
'Welcome!',
'Thanks for joining our platform!'
);
});
Customer Status Change (Mabadiliko ya Hali ya Mteja)
/**
* @param WP_Ultimo\Models\Customer $customer
* @param string $old_status
* @param string $new_status
*/
add_action('wu_customer_status_change', function($customer, $old_status, $new_status) {
// Jibu mabadiliko ya hadhi
}, 10, 3);
Site Hooks (Hooks za Tovuti)
After Site Published (Baada ya Kuchapishwa kwa Tovuti)
/**
* @param WP_Ultimo\Models\Site $site
* @param WP_Ultimo\Models\Membership $membership
*/
add_action('wu_site_published', function($site, $membership) {
switch_to_blog($site->get_id());
activate_plugin('essential-plugin/essential-plugin.php');
restore_current_blog();
}, 10, 2);
Before Template Application (Kabla ya Kutumia Template)
/**
* @param int $site_id
* @param int $template_id
*/
add_action('wu_before_apply_template', function($site_id, $template_id) {
switch_to_blog($site_id);
if ($template_id === 5) {
update_option('woocommerce_store_setup', 'complete');
}
restore_current_blog();
}, 10, 2);
Membership Hooks (Hooks za Uanachama)
Status Transitions (Mabadiliko ya Hali)
add_action('wu_membership_status_to_active', function($membership) {
// Uanachama umefunguliwa
});
add_action('wu_membership_status_to_expired', function($membership) {
$sites = $membership->get_sites();
foreach ($sites as $site) {
$site->set_status('suspended');
$site->save();
}
});
Payment Hooks (Hooks za Malipo)
Payment Completed / Failed (Malipo Yamekamilika / Yamefeli)
add_action('wu_payment_completed', function($payment) {
// Shikilia malipo yaliyofanikiwa
});
add_action('wu_payment_failed', function($payment, $error_message) {
$admin_email = get_option('admin_email');
wp_mail(
$admin_email,
'Payment Failed',
sprintf('Payment #%d failed: %s', $payment->get_id(), $error_message)
);
}, 10, 2);
Checkout Hooks (Hooks za Kukamilisha Ununuzi)
Before Processing / After Completion (Kabla ya Kuchakata / Baada ya Kukamilika)
/**
* @param WP_Ultimo\Checkout\Cart $cart
*/
add_action('wu_checkout_before_processing', function($cart) {
// Thibitisha au badilisha kikapu kabla ya kuchakata
});
/**
* @param WP_Ultimo\Models\Payment $payment
* @param WP_Ultimo\Models\Customer $customer
* @param WP_Ultimo\Models\Membership $membership
*/
add_action('wu_checkout_completed', function($payment, $customer, $membership) {
// Fuatilia ubadilishaji, tuma arifa, n.k.
}, 10, 3);
Domain Hooks (Hooks za Nyanja)
add_action('wu_domain_mapped', function($domain) {
// Sasisha CDN au mipangilio ya DNS
});
add_action('wu_domain_ssl_verified', function($domain) {
// Cheti cha SSL kimehakikiwa kwa nyanja
});
Filter Hooks (Hooks za Kuchuja)
Pricing Filters (Hooks za Bei)
Cart Total (Jumla ya Kikapu)
add_filter('wu_cart_total', function($total, $cart) {
$customer = $cart->get_customer();
if ($customer && $customer->is_vip()) {
$total = $total * 0.9; // Punguzo la 10% kwa VIP
}
return $total;
}, 10, 2);
Tax Rates (Viwango vya Kodi)
add_filter('wu_tax_rate', function($rate, $country, $state) {
if ($country === 'US' && $state === 'CA') {
return 0.0875;
}
return $rate;
}, 10, 3);
Template Filters (Hooks za Template)
add_filter('wu_available_templates', function($templates, $customer) {
if (!$customer->is_vip()) {
foreach ($templates as $key => $template) {
if ($template['category'] === 'premium') {
unset($templates[$key]);
}
}
}
return $templates;
}, 10, 2);
Limitation Filters (Hooks za Kuzuia/Kipunguzia)
add_filter('wu_limitation_feature_allowed', function($allowed, $site_id, $membership) {
if ($membership->get_customer()->is_vip()) {
return true;
}
return $allowed;
}, 10, 3);
add_filter('wu_disk_space_limit', function($limit, $site_id, $membership) {
if ($membership->get_days_active() > 365) {
$limit += 500; // MB 500 za ziada kwa wateja wa muda mrefu
}
return $limit;
}, 10, 3);
Gateway Filters (Hooks za Milango ya Malipo)
add_filter('wu_available_gateways', function($gateways, $cart) {
if ($cart->get_total() > 1000) {
unset($gateways['paypal']);
}
return $gateways;
}, 10, 2);
Checkout Form Fields (Viwanja vya Fomu ya Checkout)
add_filter('wu_checkout_form_final_fields', function($fields, $form) {
$fields['company'] = [
'type' => 'text',
'title' => 'Company Name',
'required' => true,
'placeholder' => 'Enter company name'
];
return $fields;
}, 10, 2);
Email Content (Maudhui ya Barua Pepe)
add_filter('wu_email_content', function($content, $type, $customer) {
if ($type === 'welcome') {
$content .= "\n\nSpecial offer: Use code WELCOME10 for 10% off!";
}
return $content;
}, 10, 3);