Woocommerce动作挂钩在订阅续订时执行功能
问题描述:
我想知道是否有一个动作挂钩可以检查订阅是否在woocommerce中成功续订?顺便说一句我正在使用woocommerce订阅插件。我创建了一项功能,记录订购订单的日期并将其添加到CSV文件中,该功能对于第一次购买非常合适,我的意思是当用户购买订阅时,它已成功记录在CSV中,因为我正在启动woocommerce_thankyou动作钩子上的函数,我面对的唯一问题是,我似乎无法找到一个钩子,它可以在成功订阅续订时执行此功能。我试图使用woocommerce_subscription_renewal_payment_complete动作钩子,但它没有在下面工作是我创建的功能。Woocommerce动作挂钩在订阅续订时执行功能
/**
* Add subscriptions to csv.
*/
add_action('woocommerce_subscription_renewal_payment_complete', 'add_subs_to_csv');
add_action('woocommerce_thankyou', 'add_subs_to_csv');
function add_subs_to_csv($order_id) {
$order = wc_get_order($order_id);
$items = $order->get_items();
foreach ($items as $key => $value) {
$meta_values = $value->get_data();
foreach ($meta_values as $meta_key => $meta_value) {
if ($meta_key == 'product_id' && $meta_value == 875) {
$paid_date = explode(" ", get_post_meta($order_id, '_paid_date', true));
$subs_paid_date = date('d F, Y', strtotime($paid_date[0]));
wc_add_order_item_meta($key, 'Delivery Date', $subs_paid_date);
}
}
}
}
答
请问wcs_renewal_order_created
挂钩是你要找的吗?该文件说:
WooCommerce订阅存储所有在一个标准的WooCommerce为了每个订阅 续约的细节,只能用特殊的元标记 其链接到一个订阅。
这些订单总是通过wcs_create_renewal_order() 函数创建的,而不管它们是否针对所调度 更新事件创建,经由WooCommerce>编辑订阅 管理屏幕手动,或者通过订阅端点的 WooCommerce REST API。因此,可以使用此过滤器添加,删除或更新该续订订单上任何内容的值。
例如,这可以用来为特定续订 订单添加折扣,如每年的第12个订单。它也可以用来为某个续订订单添加一次性费用 ,例如按月订购的特殊年度额外 费用。
所以上面的钩子应该付款后触发,你可能只需要检查它是否已完成状态,你同样可以做到在当前的挂钩:
/**
* After WooCommerce Subscriptions Creates Renewal Order
*
* @param WC_Order Object $order
* @param Integer|WC_Subscription Object $subscription
*
* @return void
*/
function add_subs_to_csv($order, $subscription) {
if('completed' === $order->get_status()) {
$items = $order->get_items();
foreach ($items as $key => $value) {
$meta_values = $value->get_data();
foreach ($meta_values as $meta_key => $meta_value) {
if ($meta_key == 'product_id' && $meta_value == 875) {
$paid_date = explode(" ", get_post_meta($order_id, '_paid_date', true));
$subs_paid_date = date('d F, Y', strtotime($paid_date[0]));
wc_add_order_item_meta($key, 'Delivery Date', $subs_paid_date);
}
}
}
}
}
add_action('wcs_renewal_order_created', 'add_subs_to_csv', 10, 2);
我在同一个工作东西,几乎相同,我会实施你的建议,看看它是否工作...将报告回来..谢谢 – FaISalBLiNK