programing

Woocommerce add to cart 버튼은 체크아웃으로 리다이렉트 됩니다.

powerit 2023. 2. 22. 23:19
반응형

Woocommerce add to cart 버튼은 체크아웃으로 리다이렉트 됩니다.

플러그인 woocommerce를 사용하여 e커머스를 만들었습니다.저는 구독만 판매하기 때문에 "/cart/" 페이지는 사용할 수 없습니다.고객이 "카트에 추가" 버튼을 클릭하면 체크아웃 페이지로 이동하도록 삭제하려고 합니다.

WooCommerce 3.6 이상에서는woocommerce_add_to_cart_redirect(@roman)

add_filter ('woocommerce_add_to_cart_redirect', function( $url, $adding_to_cart ) {
    return wc_get_checkout_url();
}, 10, 2 ); 

원답:

기능에서 필터를 사용할 수 있습니다.php:

add_filter ('add_to_cart_redirect', 'redirect_to_checkout');

function redirect_to_checkout() {
    global $woocommerce;
    $checkout_url = $woocommerce->cart->get_checkout_url();
    return $checkout_url;
}

ajax에서는 동작하지 않는 것 같습니다만, 1개의 제품 페이지에서 동작합니다.

WooCommerce(>= 2.1)에서는 다음과 같이 기능을 단순화할 수 있습니다.

function redirect_to_checkout() {
    return WC()->cart->get_checkout_url();
}

WooCommerce 설정에는 다음 기능을 활성화할 수 있는 옵션이 있습니다.

방문자를 카트 페이지로 리디렉션하는 옵션

WP 관리 패널> WooCommerce > Catalog에 로그인하여 옵션을 선택합니다.도움이 됐으면 좋겠네요!

마법처럼 작동하는 간단한 해결책을 찾았습니다.

  1. @Ewout에서 설명한 바와 같이 "Redirecto to cart page after successful addition" 체크박스를 켭니다.
  2. [ Woocommerce ]> [ Settings ]> [ Checkout ( Tab ) ]: 카트 및 체크아웃 페이지를 선택합니다(이미지 첨부).

그래, 난 괜찮아 여기에 이미지 설명 입력

WooCommerce 3.5.1 업데이트

스텝 1. 먼저 WooCommerce Products 설정으로 이동하여 AJAX Add to Cart를 비활성화합니다.

순서 2. 사용woocommerce_add_to_cart_redirect체크 아웃으로 리다이렉트 합니다.

add_filter( 'woocommerce_add_to_cart_redirect', function( $url ) {
    return wc_get_checkout_url();
});

물론 카트 버튼 추가 텍스트 변경 및 WooCommerce 카트 관련 알림 삭제 등 몇 가지 작은 작업이 남아 있습니다.자세한 것은, 이 튜토리얼을 참조해 주세요.https://rudrastyh.com/woocommerce/redirect-to-checkout-skip-cart.html

@RemiCorson은 이 간단하지만 유익한 튜토리얼을 게시했습니다.

http://www.remicorson.com/woocommerce-skip-product-cart-pages/

위의 @Ewout과 같은 필터를 언급하고 있습니다.

add_filter ('add_to_cart_redirect', 'redirect_to_checkout');

function redirect_to_checkout() {
    global $woocommerce;
    $checkout_url = $woocommerce->cart->get_checkout_url();
    return $checkout_url;

}

하지만 한 줄의 코드가 눈에 띄고 현재 진행 중인 woocommerce 프로젝트에서는 매우 가치가 있습니다.

사용자가 제품 페이지를 자동으로 건너뛰기 위해 사용할 수 있는 직접 링크가 있습니다.http://your-site.com/ ?add-to-time = 37

'37'은 제품 ID로 대체됩니다.

불필요한 절차를 생략하고 홈페이지나 다른 비우커머스 페이지/포스트에서 직접 체크아웃 할 수 있도록 하는 데 도움이 되었습니다.

필터 add_to_cart_redirect는 WooCommerce 2.6에서는 사용되지 않습니다.대신 woocommerce_add_to_cart_redirect를 사용합니다.

이 기능을 추가합니다.php :

add_filter ('woocommerce_add_to_cart_redirect', function() {
  return WC()->cart->get_checkout_url();
} );

테마 기능에서 아래 코드를 사용해 보십시오.php 파일

add_filter( 'woocommerce_add_to_cart_redirect', 'woo_skip_cart_redirect_checkout' );
 
function woo_skip_cart_redirect_checkout( $url ) {
    return wc_get_checkout_url();
}

shop 페이지에서, 만약 당신이 ajax를 사용하고 싶다면, ghether로 리다이렉트 합니다.두 번째 방법은 어떤 조건이 있는 경우에만 이 필터를 사용하여 Woocommerce 설정 에이잭스를 활성화한 상태로 둘 수 있습니다.

add_filter('woocommerce_loop_add_to_cart_link', array( $this, 'add_quantity_input' ), 4, 2); 

ajax_add_to_cart pagehref URL로 합니다.

템플릿 케이스:

public function add_quantity_input($text = null, $product = null) {
    global $product, $woocommerce;

    if ( $text != null and $product != null  ) {
        if(ismycondition($product->id)) {
            $s = explode('class="', $text);
            $s[2]=str_replace('ajax_add_to_cart', '', $s[2]);
            $text = implode('class="', $s);

            $text = preg_replace('/<a(.*)href="([^"]*)"(.*)>/','<a$1href="'.$woocommerce->cart->get_checkout_url().'"$3>', $text);
        }
    }

    return $text;
}

이게 도움이 됐으면 좋겠어요.

실제로 효과가 있는 솔루션은 하나도 없었습니다.필터 add_to_cart_redirect는 카트뿐만 아니라 모든 페이지에서 트리거되었습니다.나는 제안된 답변을 수정했다.

add_filter ('add_to_cart_redirect', 'redirect_to_checkout');
  function redirect_to_checkout() {
  if(is_cart()){
    $checkout_url = WC()->cart->get_checkout_url();
  ?>
  <script>
  location = '<?=$checkout_url?>';
  </script>
  <?php 
  }
}

언급URL : https://stackoverflow.com/questions/15592633/woocommerce-add-to-cart-button-redirect-to-checkout

반응형