当前位置: 首页 > 知识库问答 >
问题:

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

方心思
2023-03-14

我试图更新与WooCommerce订单相关的数据。我可以检索存量数据,但不能更新。在开始之前,我已经手动创建了订单,方法是转到仪表板的订单页面,单击添加订单按钮,然后填写发货和账单地址详细信息,并添加一些产品。

然后我创建一个woocommerce/checkout/FormPay的副本。php在我的主题中,我向其中添加了以下代码:

$invoiceid = $order->id;
echo invoiceid;

这将返回与URL中的id号对应的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个答案

锺离赤岩
2023-03-14

您可以使用订单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' ); 

}
 类似资料:
  • <address>.balance (uint256): Address的余额,以wei为单位。 <address>.transfer(uint256 amount): 发送给定数量的ether,以wei为单位,到某个地址。失败时抛出异常。 <address>.send(uint256 amount) returns (bool): 发送给定数量的ether,以wei为单位,到某个地址。失败时返回

  • 当客户通过Ajax单击thank you页面上的一个按钮时,我正在尝试将woocommerce订单的状态从processing更改为completed。 我的代码如下: 和我的functions.php中的php 我知道ajax在没有语句的情况下可以正常工作,但使用它,我会得到一个500内部服务器错误。我还知道,如果我不使用ajax并将其挂到thank you页面中,那么它就会毫无问题地更改状态。

  • 回调相关 备注: 1. 视频转码回调,是以GET请求的方式通知到客户 2. 除了视频转码回调以为,其余均以POST JSON 请求的方式通知到客户 3. 回调相关的配置在CC账户 admin/云课堂/回调地址管理 进行设置 说明: 1.开始/结束直播回调 回调数据中type字段标识开始直播/结束直播, type为start_live为开始直播,type为end

  • 问题内容: Woocommerce提供了将占位符添加到电子邮件主题的选项。我想通过创建自定义占位符来扩展此功能,该占位符从woocommerce引力表单产品附加组件和woocommerce预订中获取信息。 我已经尝试为Woocommerce电子邮件通知主题代码创建其他变量/占位符, 进行一些更改以查看是否可以使它工作。另外,我尝试获取woocommerce元字段,但这也不起作用。 在此代码上,我无