为了账号安全,请及时绑定邮箱和手机立即绑定

在 WooCommerce 中更新与订单相关的地址字段

在 WooCommerce 中更新与订单相关的地址字段

PHP
慕运维8079593 2022-07-29 10:21:39
我正在尝试更新与 woocommerce 订单相关的数据。我可以检索现有数据但不能更新。在开始之前,我已经手动创建了一个订单,方法是转到仪表板的订单页面,单击添加订单按钮,然后填写运输和账单地址详细信息并添加一些产品。然后我在我的主题中创建了woocommerce/checkout/form-pay.php的副本,并在其中添加了代码:$invoiceid = $order->id;echo invoiceid;这将返回与 URL 中对应的 ID 号,所以我知道我在正确的位置。接下来,我尝试深入了解与订单相关的地址详细信息。在我有一个工作流程之前,为了保持简单,我将更新“Billing First Name”字段。我输入:$billing_first_name = $order->get_billing_first_name();echo $billing_first_name; 同样,它返回我在手动创建订单时在该字段中输入的值。到目前为止,一切都很好。但是,当我尝试更新值时,事情就崩溃了。在阅读了关于 CRUD 的 WooCommerce 页面后,我尝试了:$order->set_billing_first_name( 'Foo' );$order->save;但值不会更新。基于此页面,我也尝试过:$order->update_meta_data( billing_first_name, 'foo' );$order->save;这也没有导致该字段被更新。更新此字段的正确过程/语法是什么?
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

您可以使用订单 ID 更新订单元数据。这是您可以根据需要更改挂钩的片段。需要将此代码放在functions.php中。


add_action( 'woocommerce_thankyou', 'digger_checkout_save_user_meta');


function digger_checkout_save_user_meta( $order_id ) {


   //$order = wc_get_order( $order_id );

  // $user_id = $order->get_user_id();


      update_post_meta( $order_id, '_billing_first_name', 'first name here');

      update_post_meta($order_id, '_billing_last_name','last name' ); 


}


查看完整回答
反对 回复 2022-07-29
  • 1 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信