问题:使用使用的优惠券代码 WooCommerce 填写自定义字段

现在我正在使用一个 mailchimp 插件,该插件需要一个自定义字段来进行验证/分段。

对于这一部分,我想检查使用了哪种优惠券。因此,我清除了以下代码,该代码应该用使用过的优惠券填充我的自定义字段:

add_action( 'woocommerce_checkout_update_order_meta', 
'my_custom_checkout_field_update_order_meta' );

function my_custom_checkout_field_update_order_meta( $order_id ) {
if ( empty( $_POST['my_field_name'] ) ) {
    $coupons = $order->get_used_coupons();
    update_post_meta( $order_id, 'my_field_name', $coupons);
}
}

可悲的是,这只会使我的网站崩溃。

任何帮助将不胜感激。

解答

您的代码有几个问题:

  • 您没有验证该字段是否有任何信息,因此您需要检查$_POST是否具有 my_field_name 键

  • 您需要加载$order变量以获取使用的优惠券。

  • 当有一个 my_field_value 时会发生什么?你储存它吗?

这是修改后的代码:

add_action( 'woocommerce_checkout_update_order_meta', 
'my_custom_checkout_field_update_order_meta' );

function my_custom_checkout_field_update_order_meta( $order_id, $posted ) {
  if ( isset($_POST['my_field_name']) && empty( $_POST['my_field_name'])) {
    $order = new WC_Order( $order_id );
    $coupons = $order->get_used_coupons();
    update_post_meta( $order_id, 'my_field_name', $coupons);
  }

}
Logo

WooCommerce社区为您提供最前沿的新闻资讯和知识内容

更多推荐