2017-11-09 17 views
0

私はWPの初心者ですし、それをコーディングしています。WooCommerceオーバーライドカートに入れるボタン

顧客がバスケットに追加ボタンをクリックしたときにTRUEまたはFALSEの値を返す関数を実行したいとします。

私の質問は、私は関数がバスケットに追加の実行がクリックされたことは何か、どこでどのように見つけるか

  1. です。
  2. WooComのアップグレードが行われているとき、私が行っている作業が上書きされないようにするにはどうすればよいですか?

ありがとう

答えて

1

あなたがワードプレスを初めて使用する場合は、フックを知っていない可能性があります。

ワードプレスフックは、デフォルト機能を変更できる機能です。

2番目の質問に答えてください。あなたのコードが上書きされないようにするには、あなたのテーマのfunction.phpファイルでActionとFilterフックを使うだけです。このようにして、あなたのカスタム機能が消え去ることなく、woocommerceプラグインを更新することができます。

Woocomerceはカートに商品を追加するためにadd_to_cart()関数を使用しています。この関数には、既定の機能を変更できるフックが用意されています。この機能の詳細 - link。コールフックのセクションにあるように、6つのフックがあります。 add_to_cart()関数は何かが間違っていた場合に例外エラーをスローするため、カートに追加するプロセスで真と偽を正しく返すようにしてはいけません。

しかし、あなたはファイルを自分のテーマfunction.phpで、WordPressのフックを使用してみましょう場合のコードは、あなたがそれをやりたいなぜあなたはより多くの情報を与えることができる。この

// define the woocommerce_add_to_cart callback 
function action_woocommerce_add_to_cart($array, $int, $int) { 
    // make action magic happen here... 
}; 

// add the action 
add_action('woocommerce_add_to_cart', 'action_woocommerce_add_to_cart', 10, 3); 

ようにすべきですか?

'woocommerce_add_to_cart'あなたの状況に基づいてフックを使用します。

// define the woocommerce_add_to_cart callback 
function action_woocommerce_add_to_cart($cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data) { 
    $vendor = get_post_meta($product_id, 'vendor', true); 
    if($vendor === 'something') { 
     return false; //you should return (throw new Exception) 
    } 
}; 

// add the action 
add_action('woocommerce_add_to_cart', 'action_woocommerce_add_to_cart', 10, 6); 
+0

ありがとうございます。私は私の町のMicro Enterprisesを支援するために何かを構築しようとしています。だから、私は複数のベンダーの店舗で異なるアプローチを試みています。 Woo-Marketplaceを運営するWooCom Storeがあります。私は、代わりに私の代わりにベンダーに支払うように支払いゲートウェイを変更しました。問題は今、私は顧客が単一のベンダーのアイテムでチェックアウトできるようにすることができます。だから、バスケットにアイテムがあるかどうかをチェックする機能が必要です。もしそうなら、誰がベンダーであり、同じベンダーでありアイテムが追加されているのでしょうか?そうでなければ、エラーがある必要があります。はいの場合は、入ります。 –

+0

「woocommerce_add_to_cart」フックを使用することができます。 6つのパラメータがあり、そのうちの1つは$ product_idです。フック内では、ベンダに関する製品メタ情報を確認し、falseの真を返すことができます。 –

+0

最後に、woocommerce_add_to_cartの中に、ありがとうございます、どうすればwc-marketplaceからのフックを呼び出すことができますか?助けてくれてありがとう –

関連する問題