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

手动将产品添加到WooCommerce管理订单时,将产品自定义元另存为订单项元

樊令秋
2023-03-14

当从管理员向订单添加产品时,我尝试将自定义产品元添加到订单项元。这是我的代码,它在后端什么都不做。。。

// Order items: Save product "location" as order item meta data
add_action( 'woocommerce_ajax_add_order_item_meta', 'action_before_save_order_item_callback' );
function action_before_save_order_item_callback($item, $cart_item_key, $values, $order) {
    if ( $location = $values['data']->get_meta('location') ) {
        $item->update_meta_data( 'location', $location ); // Save as order item meta
    }
}

共有1个答案

景仲渊
2023-03-14

您没有使用正确的函数挂钩参数,这些参数是$item\u id$item$order,并且使用的方式不正确。请尝试以下操作(代码已注释):

add_action( 'woocommerce_ajax_add_order_item_meta', 'action_before_save_order_item_callback', 9999, 3 );
function action_before_save_order_item_callback( $item_id, $item, $order ) {
    $product  = $item->get_product(); // Get the WC_Product Object
    $location = $product->get_meta('location'); // Get custom meta data

    // If custom field is empty on a product variation check on the parent variable product
    if( empty($location) && $item->get_variation_id() > 0 ) {
        $parent_product = wc_get_product( $item->get_product_id() ); // Get parent WC_Product Object
        $location = $product->get_meta('location'); // Get custom meta data
    }

    // If product meta data exist
    if( ! empty($location) ) {
        $item->update_meta_data( 'location', $location ); // Set it as order item meta
        $item->save(); // save it
    }
}

代码functions.php活动子主题(或活动主题)的文件中。测试和工作。

 类似资料:
  • 在Woocommerce 3应答代码中使用将自定义产品元数据传递到订单,当从后端手动创建订单时,从后端手动添加产品时,是否可以保存和显示自定义元数据? 这是我的代码(略有改动): 当客户机从前端创建订单时,这种方法可以正常工作。但是,当管理员从后端手动创建订单并添加产品时,自定义元数据不可见。 对于手动创建的订单,如何解决此问题,允许添加产品自定义字段作为自定义订单项目数据?

  • 我对woocommerce(最新版本)中的自定义字段有问题。我需要你的帮助。 我的代码 现在我在从自定义字段获取数据时遇到问题。字段被保存到数据库中,因为在我编辑产品时,值在字段中,但在完成订单后,我无法在钩子中获取它:(我尝试使用get_post_meta、get_meta和其他方法,但都不起作用。有人知道原因吗?

  • 基于将产品自定义字段保存为自定义订单项元数据的WooCommerce管理手动订单 我有这些代码来显示从前端下的订单的产品重量和尺寸,但我无法让它们用于从后端手动下的订单。当我添加产品时,我看不到重量和尺寸,它们也不会显示在页面上以支付订单、收到订单和发送电子邮件。 这是我的代码: 在任何地方展示并保存产品的重量。 到处显示和保存产品尺寸。

  • 我想在Woocommerce的管理员查看订单页面上添加futured图像。已创建新列,但未显示产品图像。我应该如何显示订单缩略图?谢谢

  • 我试图将我的产品简短描述作为一个新标签添加到我的订单页面,这样我们就有了一个更简单的方法来订购产品,而不必进入产品内部。 我看到目前SKU显示在产品下,理想情况下,它会有一个产品简短描述。 这就是我到目前为止所得到的结果,但是短描述没有输出 目前的结果显示 “没有摘录,因为这是一篇受保护的文章。” 我觉得它没有在产品中循环,并试图获取订单摘录,因此它说它受到保护,但我对此不太有经验。 感谢您的帮助

  • 这有点奇怪,但是我很难找到如何做到这一点的答案: 我试图创建一个自定义查询,获取WooCommerce订单中包含的所有产品(及其元)。 例如,假设我有这些订单悬而未决: 产品1 产品2 产品3 产品4 产品5 产品6 我的目标是根据这些已订购的产品创建一个列表,该列表由产品的元数据进行订购。大概是这样的: 产品1 产品3 产品4 但同样,这些只是订单中的产品(包括其数量)。 我面临的问题是,数据库