我正在使用 Woocommerce 订阅,目前,当您在帐户页面 > 编辑送货 (my-account/edit-address/shipping/) 上更新地址时,以下操作挂钩会触发 - 但是,当您在 上更新地址时,它不会触发帐户 > 查看订阅页面 > 编辑运送 (/my-account/edit-address/shipping/?subscription=62400)。
function kidstir_email_customer_address( $user_id ) {
// do stuff
}
add_action( 'woocommerce_customer_save_address','kidstir_email_customer_address', 20 );
我已经寻找了几个小时,但无法弄清楚为什么它没有触发,或者如何获取订阅地址已更改的通知。还有其他人遇到过这个问题吗?
WooCommerce Subscriptions 版本 (2.0.9) 不会调用文件 class-wc-subscriptions-addresses.php 中的 woocommerce_customer_save_address 挂钩
为了解决我的问题,我编辑了这个文件(我知道编辑 core 是不可取的)来调用第 137 行的钩子(doaction 等)。
根据 WooCommerce Subscriptions 插件的官方文档,有一个
updated_users_subscriptions
钩子。
我们找不到不涉及编辑核心/插件的良好解决方案,所以我们这样做了:
// make the "update address on all active subscriptions" box checked by default
add_filter( 'wcs_update_all_subscriptions_addresses_checked', '__return_true' );
#update_all_subscriptions_addresses_field {
display: none;
}
function customslug_subscription_actions( $actions, $subscription, $user_id ) {
$actions['change_address']['url'] = '/my-account/edit-address/shipping/';
return $actions;
}
add_filter( 'wcs_view_subscription_actions', 'customslug_subscription_actions', 999, 3 );
这不是一个很好的解决方案,但它比让用户感到混乱和困惑要好......
如果访问
woocommerce_customer_save_address
挂钩对于您的用例至关重要,但使单个订阅地址可编辑则不然,那么这也可能适合您。