WooCommerce의 결제 프로세스에 문제가 있습니다.
저는 일반 제품과 B2B 제품을 구별하기 위해 "B2B for WooCommerce" 플러그인을 사용합니다. 장면은 다음과 같습니다:
1 - 미등록 방문자는 "일반" 카테고리(기본적으로 미등록 방문자에게 제공됨)의 제품을 장바구니에 추가합니다.
2 - 체크아웃 페이지에서 방문자는 B2B 고객으로 등록하기로 결정합니다(체크아웃 페이지의 양식 선택 필드를 통해).
3 - 이 페이지에서는 등록 및 결제 프로세스가 동시에 진행됩니다.
사용자가 B2B 고객으로 등록하고 장바구니에 "일반" 제품이 있는 경우 주문이 이루어지지 않도록 하고 싶습니다. 이 두 가지 작업(가입 및 결제)이 동시에 발생하므로 일반적인 WooCommerce 후크는 예상대로 작동하지 않습니다.
결제 과정에서 등록되는 사용자 역할과 장바구니 내용을 확인하고 조건이 충족되면 주문을 차단하는 방법은 무엇입니까? 아니면 더 좋고 쉬운 방법이 있을까요?
장바구니 재설정 및 페이지 새로고침 기능을 사용해보았습니다.
편집자:
사용자 역할: Wwp_wholesaler
일반 및 도매라는 두 가지 WooCommerce 제품 카테고리를 만들었습니다. "일반"은 모든 방문자에게 표시됩니다. 역할을 등록하면 "Wwp_wholesaler"에서 "Wholesale"을 볼 수 있습니다.
선택 필드의 이름 속성은 "afreg_select_user_role"입니다. 옵션의 값 속성은 "customer"(일반 고객의 경우) 및 "wwp_wholesaler"(도매업자의 경우)입니다.
P粉0142937382024-04-04 00:01:07
다음 코드는 B2B 고객의 장바구니에 일반 품목이 있음을 감지하면 결제 프로세스를 조기에 중지합니다. 이 경우 일반 품목이 장바구니에서 제거되고 오류 메시지가 표시되어 주문이 접수되지 않습니다.
참고: 사용자 역할 별칭이 대문자로 표시되지 않기 때문에 제공된 사용자 역할 별칭이 잘못되었습니다.
코드:
으아아아코드는 하위 테마의 function.php 파일(또는 플러그인)에 있습니다. 테스트를 거쳐 작동 중입니다.