上次在 WooCommerce 中使用优惠券时存储
Store when a coupon last time was used in WooCommerce
我需要记录每张优惠券最后一次在 WooCommerce 中使用的日期。
我看到 post_meta
table 保存了一条 used_by 记录,其中包含使用它的客户的电子邮件,但没有日期记录。
正在寻找过滤器我认为这个可以帮助我记录日期:
woocommerce_increase_coupon_usage_count
有人可以指导我如何添加该记录吗?
确实可以使用woocommerce_increase_coupon_usage_count
动作挂钩。然后只需创建具有所需值的元数据
所以你得到:
function action_woocommerce_increase_coupon_usage_count( $coupon, $new_count, $used_by ) {
// Parse about any English textual datetime description into a Unix timestamp
$now = strtotime( 'now' );
$coupon->update_meta_data( '_coupon_last_time_used', $now );
$coupon->save();
}
add_action( 'woocommerce_increase_coupon_usage_count', 'action_woocommerce_increase_coupon_usage_count', 10, 3 );
检索数据:
- 当您有权访问
$coupon
对象时
// Get meta
$last_time_used = $coupon->get_meta( '_coupon_last_time_used' );
- 通过
get_post_meta()
$coupon_id = 1001;
$last_time_used = get_post_meta( $coupon_id, '_coupon_last_time_used', true );
这里有另一个解决方案。您可以试试这个解决方案。
add_action( 'woocommerce_new_order', 'create_invoice_for_wc_order', 1, 2 );
function create_invoice_for_wc_order( $order_id, $order ) {
foreach( $order->get_coupon_codes() as $coupon_code ){
$coupon_post_obj = get_page_by_title($coupon_code, OBJECT, 'shop_coupon');
$coupon_id = $coupon_post_obj->ID;
$date = date('Y-m-d H:i:s');
update_post_meta($coupon_id, '_coupon_last_used', $date );
}
}
我需要记录每张优惠券最后一次在 WooCommerce 中使用的日期。
我看到 post_meta
table 保存了一条 used_by 记录,其中包含使用它的客户的电子邮件,但没有日期记录。
正在寻找过滤器我认为这个可以帮助我记录日期:
woocommerce_increase_coupon_usage_count
有人可以指导我如何添加该记录吗?
确实可以使用woocommerce_increase_coupon_usage_count
动作挂钩。然后只需创建具有所需值的元数据
所以你得到:
function action_woocommerce_increase_coupon_usage_count( $coupon, $new_count, $used_by ) {
// Parse about any English textual datetime description into a Unix timestamp
$now = strtotime( 'now' );
$coupon->update_meta_data( '_coupon_last_time_used', $now );
$coupon->save();
}
add_action( 'woocommerce_increase_coupon_usage_count', 'action_woocommerce_increase_coupon_usage_count', 10, 3 );
检索数据:
- 当您有权访问
$coupon
对象时
// Get meta
$last_time_used = $coupon->get_meta( '_coupon_last_time_used' );
- 通过
get_post_meta()
$coupon_id = 1001;
$last_time_used = get_post_meta( $coupon_id, '_coupon_last_time_used', true );
这里有另一个解决方案。您可以试试这个解决方案。
add_action( 'woocommerce_new_order', 'create_invoice_for_wc_order', 1, 2 );
function create_invoice_for_wc_order( $order_id, $order ) {
foreach( $order->get_coupon_codes() as $coupon_code ){
$coupon_post_obj = get_page_by_title($coupon_code, OBJECT, 'shop_coupon');
$coupon_id = $coupon_post_obj->ID;
$date = date('Y-m-d H:i:s');
update_post_meta($coupon_id, '_coupon_last_used', $date );
}
}