Skip to main content

Pandhuan Panggunaan Hooks

Ultimate Multisite nyedhiyakake 200+ action hooks lan 280+ filter hooks. Kaca iki ngrembug hooks sing paling umum digunakake nganggo tuladha praktis. Kanggo referensi lengkap sing digawe otomatis, telusuri kaca liya ing bagean iki.

Action Hooks

Siklus Urip Pelanggan

Sawisé Pelanggan Digawe

/**
* @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!'
);
});

Owah-owahan Status Pelanggan

/**
* @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);

Hooks Situs

Sawisé Situs Dipublikasi

/**
* @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);

Sadurungé Penerapan 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);

Hooks Keanggotaan

Transisi Status

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();
}
});

Hooks Pembayaran

Pembayaran Rampung / Gagal

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);

Hooks Checkout

Sadurungé Diproses / Sawisé Rampung

/**
* @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);

Hooks Domain

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

Filter Rega

Total Kréta

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);

Tarif Pajak

add_filter('wu_tax_rate', function($rate, $country, $state) {
if ($country === 'US' && $state === 'CA') {
return 0.0875;
}

return $rate;
}, 10, 3);

Filter 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);

Filter Watesan

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);

Filter Gateway

add_filter('wu_available_gateways', function($gateways, $cart) {
if ($cart->get_total() > 1000) {
unset($gateways['paypal']);
}

return $gateways;
}, 10, 2);

Field Formulir 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);

Isi Email

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);