ユーザー登録後に自動的に商品をカートに追加する必要があります(機能しませんでした)。Woocommerce:ユーザーのメタで商品を自動的に商品に追加
最初のアクションは、登録後に製品を追加するだけであり、それは完全に働いた:
add_action('user_register', 'add_product_to_cart');
function add_product_to_cart() {
if (! is_admin()) {
$product_id = 115;
$found = false;
//check if product already in cart
if (sizeof(WC()->cart->get_cart()) > 0) {
foreach (WC()->cart->get_cart() as $cart_item_key => $values) {
$_product = $values['data'];
if ($_product->id == $product_id)
$found = true;
}
// if product not found, add it
if (! $found)
WC()->cart->add_to_cart($product_id);
} else {
// if no products in cart, add it
WC()->cart->add_to_cart($product_id);
}
}
}
は今、私は私が得たpromoIDユーザーの持っているリストに基づいて特定の製品を追加する必要がありますが、それはdoesnのカートに何も追加しないでください。コードの 例:私は、テンプレートファイルにコードを取り、単に製品を追加するのではなく、何かをエコー場合
add_action('user_register', 'add_product_to_cart');
function add_product_to_cart() {
if (! is_admin()) {
$group1iid1 = array("1", "2", "3", "4");
$group1iid2 = array("5", "6", "7", "8");
if (in_array("2", $group1iid1)) {
$product_id = 115;
WC()->cart->add_to_cart($product_id);
} elseif (in_array("0", $group1iid2)) {
$product_id = 219;
WC()->cart->add_to_cart($product_id);
} else {
$product_id = 231;
WC()->cart->add_to_cart($product_id);
}
}
}
- それは大丈夫動作しますが、それはfunction.phpにこのようなものだとき>何も起こりません。
私には何が欠けていますか?
1)あなたの最初の状態では、あなたが、私はこのコードは唯一の新しいregistratedユーザーのためであると仮定しても、is_user_logged_in()
条件を追加する必要があります。
にはならないことになって「0」この例では配列です。 promoIDはIDの1つのグループにのみ表示されます。 – GuyG
+ユーザが登録され、自動ログイン後になります。とにかくこのページには実際には行きません。 私はすぐにあなたの例を試してみて、報告します。ありがとう! – GuyG