During this week I’ve been working on a special feature for one client’s store and found this useful hooks in the Woocommerce Subscriptions plugin, so I want to share what I’ve learned.
If you want to do something after a subscription is added, you can use any of this four hooks:
- woocommerce_setup_cart_for_subscription_initial_payment
- woocommerce_setup_cart_for_subscription_renewal
- woocommerce_setup_cart_for_subscription_resubscribe
- woocommerce_setup_cart_for_subscription_switch
Each one of the hooks are triggered depending on the status of the subscription, e.g. if is the first time the subscription is purchased the subscription_initial_payment is triggered.
The woocommerce_setup_cart_for_
hook is triggered at the end of the method setup_cart under the class WCS_Cart_Renewal.
Using this hook you can do anything after the product is added to the cart, this hook has two parameters available:
- $subscription WC_Subscription with the subscription.
- $cart_item_data array with the cart item data.
Example add a coupon code automatically if not purchasing a trial subscription
function add_coupon_code_for_subscription($subscription, $cart_item_data){
if( wcs_get_line_items_with_a_trial($subscription) == false ){
WC()->cart->apply_coupon('summer20');
}
}
add_action("woocommerce_setup_cart_for_subscription_initial_payment", "add_coupon_code_for_subscription");