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語句,這工作,但擁有多個產品是理想的,因爲我有多個成員類型需要此字符串生成。 –