WooCommerce-Get_Items()返回空数组

时间:2020-07-03 作者:Todd Coffee

我正在尝试编写一个函数,允许我添加产品元标记作为额外的订单注释。不幸的是,什么都不管用。几个小时后,我决定将函数转换为最简单的形式,以查看哪些功能不起作用。

每次我订购两种产品。我查看了我的订单,看到了两种产品。我的职能部门应创建一个注释,其中包含文本“;测试2“;但会创建一个;测试0;。我不知道为什么。

function add_engraving_notes($order_id)
{
    $order = wc_get_order($order_id);
    $note = \'Test\';

    $items = $order->get_items();
    $note .= count($items);
    
    $order->add_order_note($note);

    $order->save();
}
add_action(\'woocommerce_new_order\', \'add_engraving_notes\');

2 个回复
SO网友:Omar Tanti

这里提供的解决方案对我不起作用。订单项目似乎是在woocommerce_new_order 挂钩已触发。我只是在将挂钩改为woocommerce_checkout_order_processed 如下所示:

add_action( \'woocommerce_checkout_order_processed\', \'get_order_items_on_checkout\', 50, 3 );
function get_order_items_on_checkout($order_id, $posted_data, $order){
   $items = $order->get_items();
}

SO网友:mozboz

我在这里找到了答案:https://stackoverflow.com/questions/51014200/wc-order-items-empty

get\\u items调用的名称或文档似乎不好,因为它需要额外的参数。根据链接答案中的代码,您需要:

$items = $order->get_items( apply_filters( \'woocommerce_purchase_order_item_types\', \'line_item\' ) );

相关推荐

将PHP升级到7.4 WordPress后出错

将PHP升级到7.4 FastCGI后,我发现以下错误::fread():读取8192字节失败,错误号=21是目录不示例。com/wp/wp包括/功能。php在线5977以及:警告:无法修改标题信息-标题已发送(输出开始于example.com/wp/wp-includes/functions.php:5977)不示例。com/wp/wp admin/admin标题。php第9行我有3个插件都被禁用了。