1
我有一个生成唯一字符串的函数。这目前正在工作。然而,它是运行在结帐时出售的所有产品。我希望以下函数仅在特定产品处于订单Items中时才运行。在WooCommerce订购项目中筛选特定产品ID
这是我到目前为止有:
add_action('woocommerce_order_status_processing', 'add_unique_id');
function add_unique_id($order_id) {
$order = new WC_Order($order_id);
$items = $order->get_items();
foreach ($items as $item_id => $product) {
$str = "";
$length= 45;
$characters = array_merge(range('A','Z'), range('a','z'), range('0','9'));
$max = count($characters) - 1;
for ($i = 0; $i < $length; $i++) {
$rand = mt_rand(0, $max);
$str .= $characters[$rand];
}
wc_add_order_item_meta($item_id, 'Member Number', $str);
}
}
谢谢Loic,但是我在if语句行上收到语法错误,意外变量(T_VARIABLE)。我用有效的ID替换了阵列中的37和50产品ID –
@NickChappell我已经更新了代码,只用了1个产品ID ...请尝试一下...但是您需要在那里设置您的产品ID ...它应该适合您。 – LoicTheAztec
我删除了额外的)在if语句,这工作,但拥有多个产品是理想的,因为我有多个成员类型需要此字符串生成。 –