根据订单商品数量为 WooCommerce 订单添加到期日期
Add an expiration date to WooCommerce orders based on order items count
我正在尝试为我的 WooCommerce 商店设置到期日期功能。
我需要的是一个可以为订单设置到期日期的自动化系统。 1 件产品的有效期为 15 天,如果您订购 2 件,则为 30 天,依此类推。基本上,expiration_days = order_quantity * 15,并在订单数据中设置日期。
然后,我需要从 WooCommerce 面板的订单列表中删除过期订单。
我见过类似的使用钩子的解决方案,但我不知道如何将到期日期设置为元数据。我被困在这里:
add_action( 'woocommerce_checkout_create_order', 'add_expiration' );
function add_expiration( $order ) {
// Calculate expiration date.
// I know how to work with dates, but I haven't found how to get quantity from the order to do the multiply.
$order->update_meta_data('expiration_date', $expiration_date);
}
那么我只需要一个系统来检查当前日期是否早于到期日期。不知道我是否也可以每天使用 functions.php 触发检查功能,或者我需要另一种方法。
// Daily trigger
function delete_expired( ) {
// for each order
// if order.expiration_date > current_date
// wp_delete_post(order);
}
希望我解释得很好。
您仍然可以获得购物车商品数量,这将允许您进行计算并设置到期日期:
add_action( 'woocommerce_checkout_create_order', 'add_expiration' );
function add_expiration( $order, $data ) {
$items_count = WC()->cart->get_cart_contents_count();
$order->update_meta_data('expiration_date', date( 'Y-m-d H:i:s', strtotime( '+'. ( $items_count * 15 ) .' days' ) ) );
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
现在您可以使用 Action Scheduler 插件,根据到期日期制作作业队列。
Action Scheduler 是用于后台处理的可扩展、可跟踪的作业队列……
请注意 Action Scheduler library 被 WooCommerce 和 WooCommerce Subscriptions.
包含/使用
文档(和示例用法)位于 ActionScheduler.org
Action Scheduler 比 WordPress Cron 更简单、高效和可扩展。
注意当时Whosebug中的规则是一道题
我正在尝试为我的 WooCommerce 商店设置到期日期功能。
我需要的是一个可以为订单设置到期日期的自动化系统。 1 件产品的有效期为 15 天,如果您订购 2 件,则为 30 天,依此类推。基本上,expiration_days = order_quantity * 15,并在订单数据中设置日期。
然后,我需要从 WooCommerce 面板的订单列表中删除过期订单。
我见过类似的使用钩子的解决方案,但我不知道如何将到期日期设置为元数据。我被困在这里:
add_action( 'woocommerce_checkout_create_order', 'add_expiration' );
function add_expiration( $order ) {
// Calculate expiration date.
// I know how to work with dates, but I haven't found how to get quantity from the order to do the multiply.
$order->update_meta_data('expiration_date', $expiration_date);
}
那么我只需要一个系统来检查当前日期是否早于到期日期。不知道我是否也可以每天使用 functions.php 触发检查功能,或者我需要另一种方法。
// Daily trigger
function delete_expired( ) {
// for each order
// if order.expiration_date > current_date
// wp_delete_post(order);
}
希望我解释得很好。
您仍然可以获得购物车商品数量,这将允许您进行计算并设置到期日期:
add_action( 'woocommerce_checkout_create_order', 'add_expiration' );
function add_expiration( $order, $data ) {
$items_count = WC()->cart->get_cart_contents_count();
$order->update_meta_data('expiration_date', date( 'Y-m-d H:i:s', strtotime( '+'. ( $items_count * 15 ) .' days' ) ) );
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
现在您可以使用 Action Scheduler 插件,根据到期日期制作作业队列。
Action Scheduler 是用于后台处理的可扩展、可跟踪的作业队列……
请注意 Action Scheduler library 被 WooCommerce 和 WooCommerce Subscriptions.
包含/使用
文档(和示例用法)位于 ActionScheduler.org
Action Scheduler 比 WordPress Cron 更简单、高效和可扩展。
注意当时Whosebug中的规则是一道题