Hooks ବ୍ୟବହାର ମାର୍ଗଦର୍ଶିକା
Ultimate Multisite ୨୦୦ରୁ ଅଧିକ action hooks ଏବଂ ୨୮୦ରୁ ଅଧିକ filter hooks ପ୍ରଦାନ କରେ। ଏହି ପୃଷ୍ଠାରେ ବ୍ୟବହାରିକ ଉଦାହରଣ ସହ ସବୁଠାରୁ ସାଧାରଣଭାବେ ବ୍ୟବହୃତ hooks ଆଲୋଚନା କରାଯାଇଛି। ସମ୍ପୂର୍ଣ୍ଣ ସ୍ୱୟଂଚାଳିତ ଭାବେ ସୃଷ୍ଟ reference ପାଇଁ, ଏହି ଖଣ୍ଡର ଅନ୍ୟ ପୃଷ୍ଠାଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ।
Action Hooks
ଗ୍ରାହକ ଜୀବନଚକ୍ର
ଗ୍ରାହକ ସୃଷ୍ଟି ପରେ
/**
* @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!'
);
});
ଗ୍ରାହକ ସ୍ଥିତି ପରିବର୍ତ୍ତନ
/**
* @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) {
// React to status transitions
}, 10, 3);
Site Hooks
Site ପ୍ରକାଶିତ ହେବା ପରେ
/**
* @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);
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
ସ୍ଥିତି ପରିବର୍ତ୍ତନ
add_action('wu_membership_status_to_active', function($membership) {
// Membership activated
});
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
Payment ସମ୍ପ ୂର୍ଣ୍ଣ / ବିଫଳ
add_action('wu_payment_completed', function($payment) {
// Handle successful payment
});
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
ପ୍ରକ୍ରିୟାକରଣ ପୂର୍ବରୁ / ସମ୍ପୂର୍ଣ୍ଣ ହେବା ପରେ
/**
* @param WP_Ultimo\Checkout\Cart $cart
*/
add_action('wu_checkout_before_processing', function($cart) {
// Validate or modify cart before processing
});
/**
* @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) {
// Track conversion, send notifications, etc.
}, 10, 3);
Domain Hooks
add_action('wu_domain_mapped', function($domain) {
// Update CDN or DNS configuration
});
add_action('wu_domain_ssl_verified', function($domain) {
// SSL certificate verified for domain
});
Filter Hooks
ମୂଲ୍ୟ ନିର୍ଦ୍ଧାରଣ Filters
Cart ମୋଟ
add_filter('wu_cart_total', function($total, $cart) {
$customer = $cart->get_customer();
if ($customer && $customer->is_vip()) {
$total = $total * 0.9; // 10% VIP discount
}
return $total;
}, 10, 2);
କର ହାର
add_filter('wu_tax_rate', function($rate, $country, $state) {
if ($country === 'US' && $state === 'CA') {
return 0.0875;
}
return $rate;
}, 10, 3);
Template Filters
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);
ସୀମାବଦ୍ଧତା Filters
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; // Extra 500MB for long-term customers
}
return $limit;
}, 10, 3);
Gateway Filters
add_filter('wu_available_gateways', function($gateways, $cart) {
if ($cart->get_total() > 1000) {
unset($gateways['paypal']);
}
return $gateways;
}, 10, 2);
Checkout Form Fields
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
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);