programing

결제 전 Woocommerce 확인 주문

minimums 2023. 3. 14. 21:31
반응형

결제 전 Woocommerce 확인 주문

저희 Woocommerce 웹숍에 리뷰 오더 페이지를 추가하려고 합니다.현재 장바구니에 아이템을 추가할 때 청구처와 배송지 주소가 필요한 체크아웃 페이지로 이동하여 제출하면 다음 단계는 (PayPal을 통한) 결제 페이지입니다.지불 페이지로 가기 전에 주문 확인 페이지를 추가하고 싶기 때문에 체크아웃 페이지에 주소를 입력하고 사용자가 클릭한 후 주문 개요/검토 페이지가 주문 합계 및 이전에 입력한 주소와 함께 표시되며, 10명의 사용자가 주소를 변경하고 싶을 때 돌아가기 위한 링크가 표시됩니다.확인 페이지 같은 거.그런 다음 사용자가 진행하면 결제 페이지로 이동합니다.

나는 이것을 조사했지만 운이 없었다.저는 이 액션을functions.php동작하지 않습니다.

add_action( 'woocommerce_review_order_before_submit','woocommerce_order_details_table');

Woocommerce로 할 수 있는 방법이 있나요?관리 패널에도 이 설정은 없습니다.

나는 최근에 이 문제를 접했다.제 솔루션은 워드프레스 백엔드에 '리뷰 오더'라는 페이지를 만들고 단축코드를 입력하는 것이었습니다.[woocommerce_checkout]를 참조해 주세요.그런 다음 페이지 검토 순서를 만듭니다.php는 내 아이 테마의 루트에 있습니다.

page-review-order.php에서 다음과 같은 정의를 설정했습니다.

if ( ! defined( 'THIS_IS_CHECKOUT' ) )
{
  define( 'THIS_IS_CHECKOUT', true );
}
if ( ! defined( 'THIS_IS_REVIEW') )
{
  define( 'THIS_IS_REVIEW', true);
}

여기서부터 저는 일반적인 체크아웃 프로세스를 통해 필요한 정보를 쉽게 얻을 수 있었습니다.그러나 이 프로세스의 어떤 부분이 체크아웃 페이지에 속하는지, 어떤 부분이 리뷰 페이지에 속하는지 다음과 같이 교환할 수 있었습니다.

if (defined( 'THIS_IS_REVIEW'))
{
  $reviewPage = true;
}

제가 관리하고 있는 WooCommerce 셋업을 보면 관리자에서 WooCommerce > Settings > Checkout (상단의 탭)에서 Cart 페이지를 설정할 수 있음을 알 수 있습니다.

'체크아웃 페이지'까지 스크롤하여 '카트 페이지'가 선택되어 있는지 확인합니다.예를 들어 '쇼핑 카트'라는 페이지를 만들지 않고 다음 단축 코드를 추가합니다.[woocommerce_cart]

그런 다음 이전 WooCommerce 설정 페이지로 돌아가서 새로 만든 페이지를 선택합니다.

이 페이지는 체크아웃 프로세스에서 과금 정보 앞에 배치됩니다.

이게 도움이 되면 알려주세요.

이것이 완벽한 해결책은 아닐지 모르지만, 제가 정리한 방법은 이렇습니다.

이 stackoverflow 스레드를 보세요.

숨겨진 입력이 .confirm-order-flag검토 또는 이미 검토해야 한다고 말합니다.

에 검증이 '아까보다'를 합니다.woocommerce_after_checkout_validation이 값을 확인합니다.검토해야 할 경우에는 가짜 오류를 추가합니다.

jQuery에서는 에러의 수를 확인합니다.이 수를 확인하려고 하는 경우는 1개, 오류가 있는 경우는 2개 이상입니다(0이 있는 경우는 이미 확인 페이지입니다).

    $(document.body).on('checkout_error', function () {
    var error_count = $('.woocommerce-error li').length;
    var url_params = form_parameters_to_url();
    if (error_count == 1) { // Validation Passed (Just the Fake Error I Created Exists)
                window.location = "review_page_url";

            }else{ // Validation Failed (Real Errors Exists, Remove the Fake One)
                $('.woocommerce-error li').each(function(){
                    var error_text = $(this).text();
                    if (error_text == 'custom_notice'){
                        $(this).css('display', 'none');
                    }
                });
            }
        });

에는 'URL'도해 두겠습니다.[woocommerce_checkout]가 「 트 with a가 short short 、 「 가 、 「 에 、 ID 」 。#confirm_order_page을 0jQuery로

$('#confirmation_form #place_order').click(function () {
    $('#confirm-order-flag').val('');       
});

에러가 없고, 검증에 합격합니다.리뷰 페이지의 양식을 css에게 숨깁니다.완벽한 솔루션은 아니지만 이 문제를 시작하는 데 도움이 될 수 있습니다.

언급URL : https://stackoverflow.com/questions/25316948/woocommerce-review-order-before-payment

반응형