Woocommerce 订阅地址更改挂钩

问题描述 投票:0回答:3

我正在使用 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 );

我已经寻找了几个小时,但无法弄清楚为什么它没有触发,或者如何获取订阅地址已更改的通知。还有其他人遇到过这个问题吗?

wordpress woocommerce hook subscriptions
3个回答
1
投票

WooCommerce Subscriptions 版本 (2.0.9) 不会调用文件 class-wc-subscriptions-addresses.php 中的 woocommerce_customer_save_address 挂钩

为了解决我的问题,我编辑了这个文件(我知道编辑 core 是不可取的)来调用第 137 行的钩子(doaction 等)。


0
投票

根据 WooCommerce Subscriptions 插件的官方文档,有一个

updated_users_subscriptions
钩子。


0
投票

我们找不到不涉及编辑核心/插件的良好解决方案,所以我们这样做了:

  • 强制复选框将所有订阅更新为默认选中状态
// 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
挂钩对于您的用例至关重要,但使单个订阅地址可编辑则不然,那么这也可能适合您。

© www.soinside.com 2019 - 2024. All rights reserved.