WooCommerce Checkout - ユーザーの役割とカートの内容を検証する
P粉545910687
P粉545910687 2024-04-03 11:58:52
0
1
451

WooCommerce でのチェックアウト プロセスで問題が発生しています。

通常の商品とB2B商品を区別するために「B2B for WooCommerce」プラグインを使用しています。シーンは次のとおりです:

1 - 未登録の訪問者は、「一般」カテゴリ (デフォルトで未登録の訪問者が利用可能) から製品をショッピング カートに追加します。

2 - チェックアウト ページで、訪問者は (チェックアウト ページのフォーム選択フィールドを介して) B2B 顧客として登録することを決定します。

3 - 登録とチェックアウトのプロセスはこのページで同時に行われます。

ユーザーが B2B 顧客として登録し、カートに「通常」の製品が入っている場合、注文が行われないようにしたいと考えています。 これら 2 つのアクション (サインアップとチェックアウト) は同時に発生するため、一般的な WooCommerce フックは期待どおりに機能しません。

チェックアウトプロセス中に登録されているユーザーロールとショッピングカートの内容を確認し、条件が満たされた場合に注文をブロックするにはどうすればよいですか?それとも、これを行うためのより良い、より簡単な方法があるでしょうか?

カートをリセットしてページを再読み込みする機能を試してみました。

###編集:###

ユーザー役割: Wwp_wholesaler

私は、一般と卸売という 2 つの WooCommerce 製品カテゴリを作成しました。 「通常」はすべての訪問者に表示されます。 ロールを登録すると、「Wwp_wholesaler」から「卸売業者」が見えるようになります。

選択フィールドの名前属性は「afreg_select_user_role」です。 オプションの値属性は、「customer」(通常の顧客の場合) と「wwp_wholesaler」(卸売業者の場合) です。

P粉545910687
P粉545910687

全員に返信(1)
P粉014293738

次のコードは、B2B 顧客のショッピング カートで通常の商品が検出されたときに、チェックアウト プロセスを早期に停止します。この場合、通常の商品がカートから削除され、エラー メッセージが表示され、注文できなくなります。

注: ユーザー ロールのエイリアスが大文字ではないため、指定されたユーザー ロールのエイリアスは正しくありません。

コード:

リーリー

コードは子テーマのfunctions.phpファイル(またはプラグイン)にあります。テスト済みで動作しています。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!