使用使用过的优惠券代码 WooCommerce 填写自定义字段
Fill out custom field with used coupon code WooCommerce
现在我正在使用一个 mailchimp 插件,它需要 validating/segmenting 的自定义字段。
对于这个部分,我想查看使用的是哪种优惠券。所以我清除了以下代码,这些代码应该用使用过的优惠券填充我的自定义字段:
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);
}
}
现在我正在使用一个 mailchimp 插件,它需要 validating/segmenting 的自定义字段。
对于这个部分,我想查看使用的是哪种优惠券。所以我清除了以下代码,这些代码应该用使用过的优惠券填充我的自定义字段:
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);
}
}