$ order_id与WooCommerce订单有关

时间:2017-04-20 04:51:14

标签: woocommerce

自从我从WooCommerce 2.6升级到3后,我遇到了一个问题,即我的一些自定义代码在处理订单时没有运行。我一直与WooCommerce的帮助人员保持联系没有运气,我在Stackoverflow上经历了很多页面而没有提到这个问题。

在我的functions.php文件中,我有这个代码对自定义字段(网站地址)的数据库进行更新......它可以100%工作(在WC 2.6和WC 3中都有):

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['website_address'] ) ) {
    update_post_meta( $order_id, 'Website Address', sanitize_text_field( $_POST['website_address'] ) );
    }
}

此代码每次都有效的事实告诉我,$ order_id的值必须在此步骤中存在。

但是,如果在成功运行代码之前,我有一段代码,例如:

IF ($order_id) {
  // Email me ...
}

...然后电子邮件永远不会发射。

在版本2.6中,我对此没有任何问题,电子邮件将触发并包含$ order_id的值。

我甚至试过省略IF'$($ order_id)'的IF语句,以便测试电子邮件脚本是否正常工作,并且确实如此。

所以我的问题是,为什么我不能访问$ order_id的值但紧接着使用$ order_id之后的代码,工作正常?

欢迎任何建议/见解。

感谢。

1 个答案:

答案 0 :(得分:0)

尝试更新此行     add_action(' woocommerce_checkout_update_order_meta',' my_custom_checkout_field_update_order_meta',10,1);

您应该在添加挂钩时提及您期望的参数。它应该适合你。