【发布时间】:2021-07-01 01:11:25
【问题描述】:
我使用名为 Mailster 的 Wordpress 电子邮件插件。我想设置它,以便如果用户取消他们的 Woocommerce 订阅,或者将其暂停或暂停,他们将被移动到不同的电子邮件列表。
我有一个来自 Mailster 本身的代码来执行列表更改。代码如下。
add_action( 'my_custom_action', function( ) {
if( $subscriber = mailster( 'subscribers' )->get_by_wpid() ){
$list_id_from = 1;
$list_id_to = 2;
mailster( 'subscribers' )->unassign_lists( $subscriber->ID, $list_id_from );
mailster( 'subscribers' )->assign_lists( $subscriber->ID, $list_id_to );
}
});
我需要弄清楚的是如何将其与 Woocommerce Subscriptions 集成,以便当订阅状态发生更改(取消、暂停、活动、暂停)时,触发上面的代码。
我真的不知道如何处理它。我知道有几个钩子
"woocommerce_order_status_changed" and "woocommerce_subscription_status_updated"
但我不知道如何将它们合并到功能代码中。提前致谢。
更新
我可以确认,只要对代码进行一些修改,它就可以工作。下面是我用过的完整代码。
function moved_to_a_different_email_list_when_subscription_status_updated( $subscription, $new_status, $old_status ){
if( $subscriber = mailster( 'subscribers' )->get_by_wpid() ){
$list_id_from = 5;
$list_id_to = 6;
if( $new_status == 'cancelled' || $new_status == 'pending-cancel' ){
mailster( 'subscribers' )->unassign_lists( $subscriber->ID, $list_id_from );
mailster( 'subscribers' )->assign_lists( $subscriber->ID, $list_id_to );
}
}
}
add_action('woocommerce_subscription_status_updated', 'moved_to_a_different_email_list_when_subscription_status_updated', 10, 3 );
【问题讨论】:
标签: wordpress woocommerce hook-woocommerce email-client woocommerce-subscriptions