WooCommerce订单批量编辑与function.php中的自定义挂钩

时间:2015-10-11 23:25:01

标签: php wordpress function woocommerce

我正在使用WooCommerce在Wordpress网站上工作。我必须实现一些额外的功能,其中之一是标记完成后的一些简单操作。我在functions.php:

中使用woocommerce_order_status_completed钩子
add_action( 'woocommerce_order_status_completed' , 'pontfeliras_woocommerce_order_status_completed',10,2);

function pontfeliras_woocommerce_order_status_completed( $order ) {
    $order = new WC_Order($order);
    $order_id = $order->id;
    $user_id = $order->user_id;
    ...
    boring code here
    ...

    update_field( 'pontertek_felirva', true );
    }
}

如果我打开订单进行编辑(通过点击管理员中的订单#),那么将订单状态设置为已完成会使该功能完全消失,我想要它。

但如果我在批量修改部分尝试此功能,则可以看到多个订单 - >勾选复选框 - >标记为已完成 - >然后应用所需的操作不会发生,只有订单设置为完成。也许它与代码的这一部分有关:

$order = new WC_Order($order);

这部分创建对象,如下所示(使用var_dump($ order);):

object(WC_Order)#9567 (14) {
["order_type"]=>
string(6) "simple"
["id"]=>
int(375)
["post"]=>
object(WP_Post)#9526 (24) {
  ["ID"]=>
  int(375)
  ["post_author"]=>
  string(1) "1"
  ["post_date"]=>
  string(19) "2015-10-11 23:20:00"
  ["post_date_gmt"]=>
  string(19) "2015-10-11 23:20:00"
  ["post_content"]=>
  string(0) ""
  ["post_title"]=>
  string(43) "Order – október 11, 2015 @ 11:20 DU."
  ["post_excerpt"]=>
  string(0) ""
  ["post_status"]=>
  string(12) "wc-completed"
  ["comment_status"]=>
  string(6) "closed"
  ["ping_status"]=>
  string(6) "closed"
  ["post_password"]=>
  string(0) ""
  ["post_name"]=>
  string(29) "order-oktober-11-2015-1120-du"
  ["to_ping"]=>
  string(0) ""
  ["pinged"]=>
  string(0) ""
  ["post_modified"]=>
  string(19) "2015-10-11 23:20:29"
  ["post_modified_gmt"]=>
  string(19) "2015-10-11 23:20:29"
  ["post_content_filtered"]=>
  string(0) ""
  ["post_parent"]=>
  int(0)
  ["guid"]=>
  string(55) "http://flavantic.local/?post_type=shop_order&p=375"
  ["menu_order"]=>
  int(0)
  ["post_type"]=>
  string(10) "shop_order"
  ["post_mime_type"]=>
  string(0) ""
  ["comment_count"]=>
  string(1) "1"
  ["filter"]=>
  string(3) "raw"
}
["order_date"]=>
string(19) "2015-10-11 23:20:00"
["modified_date"]=>
string(19) "2015-10-11 23:20:29"
["customer_message"]=>
string(0) ""
["customer_note"]=>
string(0) ""
["post_status"]=>
string(12) "wc-completed"
["prices_include_tax"]=>
bool(true)
["tax_display_cart"]=>
string(4) "incl"
["display_totals_ex_tax"]=>
bool(false)
["display_cart_ex_tax"]=>
bool(false)
["formatted_billing_address":protected]=>
string(0) ""
["formatted_shipping_address":protected]=>
string(0) ""
}

我尝试使用foreach循环进行迭代,但没有成功。应该是什么解决方案?

0 个答案:

没有答案