source

우커머스 체크아웃 페이지에서 결제수단 이동

manysource 2023. 10. 22. 20:10

우커머스 체크아웃 페이지에서 결제수단 이동

우커머스 사이트 체크아웃 페이지의 결제 방법을 주문 후기 위로 옮겨야 하는데 방법을 모르겠습니다.문제는 제가 다음 코드를 사용하려고 시도했다는 것입니다.

remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 ); 
add_action( 'woocommerce_after_order_notes', 'woocommerce_checkout_payment', 20 );

하지만 '약관' 텍스트와 '주문하기' 버튼도 그것과 함께 움직입니다.결제 옵션이 있어야 하고, 그 다음에 주문 리뷰가 있어야 하고, 결국에는 "약관" 텍스트와 "주문하기" 버튼이 있어야 합니다.

내가 어떻게 그럴 수 있을까?

오리지널 WC 후크

// includes/wc-template-hooks.php:214
add_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );

너의 훅

이것은 당신의 테마나 플러그인에 있을 것입니다.

// make sure the priority value is correct, running after the default priority.
remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
add_action( 'woocommerce_after_order_notes', 'woocommerce_checkout_payment', 20 );

WC가 로드된 후 후크가 실행되어야 제거할 수 있습니다.

function theme_wc_setup() {
  remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
  add_action( 'woocommerce_after_order_notes', 'woocommerce_checkout_payment', 20 );
}
add_action( 'after_setup_theme', 'theme_wc_setup' );

편집: 감사합니다. 아직도 활발히 검색되고 있는 줄은 몰랐습니다.다른 개발자들을 돕기 위해 투표하세요!

저는 유사한 작업을 할 방법을 찾고 있었습니다. 바로 Ts&C를 결제 수단 위로 이동시키는 것입니다.그런데 우씨가 Ts&C를 체크하는 데 이상한 일이 벌어지고 있습니다.개인 정보 텍스트에 대한 후크와 용어 텍스트에 대한 후크가 있는 것처럼 보이지만 실제 체크박스에 대한 후크는 없으므로 처음 두 개에 대한 후크를 사용할 수 있지만 실제 체크박스는 사용할 수 없어 짜증이 납니다.세 가지를 모두 포함하는 "우상 거래 조건 포장" 디브 전체가 후크 가능해야 하는 것 같습니다.

어쨌든, 저는 jQuery를 통해 제 디브를 옮기는 것이 더 쉽다는 것을 알게 되었고, 디브라는 용어를 쉽게 옮길 방법을 찾지 못했기 때문에 대신 페이먼트 디브를 옮겼습니다. (이것이 당신이 요청한 것이므로 유용한 경우를 대비하여 여기에 공유합니다.)

이 토막글을 함수 파일에 추가합니다.Adjust insertBefore 이동할 div.제 예를 들어, 그것은 약관을 따르게 됩니다.테스트하고 작동 중입니다.

function stacko_woomove_paymentmethods() { 
    if (is_checkout() ) { ?>
        <script>
            jQuery(function($) {
              $(document).ready(function(){
$('.wc_payment_methods.payment_methods.methods').detach().insertBefore('button#place_order');
$('.wc_payment_methods.payment_methods.methods').before('<h3 class="note">Select Payment</h3>');
    });
  });
</script>
<? }
}
add_action( 'woocommerce_checkout_init', 'stacko_woomove_paymentmethods');

템플릿 재정의가 필요합니다(편집 기능은 사용할 수 없음).php만).

원하는 것을 달성할 수 있는 한 가지 방법은 다음과 같습니다.

  1. wocommerce 플러그인 폴더에서 payment.php를 당신의_child_theme/wocommerce/checkout/폴더에 복사합니다.
  2. 새로 만든 payment.php 파일을 열고 줄 바로 앞에 사용자 정의 후크를 추가합니다.<div class="form-row place-order">. 예를 들어,

    <?php do_action( 'woocommerce_review_order_and_proceed' ); ?>

  3. 하위 테마의 functions.php에서 아래 코드를 추가하여 원래 위치에서 woocmerce_order_review 동작을 해제하고 새로 만든 후크에 후크합니다.

    remove_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review', 10 );

    add_action( 'woocommerce_review_order_and_proceed', 'woocommerce_order_review', 20 );

언급URL : https://stackoverflow.com/questions/43029425/move-payment-methods-in-woocommerce-checkout-page