1
私は一意の文字列を生成する関数を持っています。これは現在動作しています。しかし、それはチェックアウト時に販売されているすべての製品のために実行されています。特定の商品が注文商品に含まれている場合にのみ、以下の機能を実行したいと思います。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);
}
}
ありがとう、私は構文エラー、予期せぬ変数(T_VARIABLE)if文の行を受け取りました。私は有効なIDの –
@NickChappellと配列内の37と50の製品IDを置き換えました。代わりに1つの製品IDでコードを更新しました...試してください...しかし、あなたの製品IDを設定する必要があります...それはあなたのために働く必要があります。 – LoicTheAztec
if文で余分な部分を削除しましたが、これはうまくいきましたが、この文字列を生成する必要のある複数のメンバーシップタイプがあるので、複数の製品を持つのが理想的です。 –