복붙노트

[WORDPRESS] WooCommerce에서 이월 된 항목을 기반으로 지불 게이트웨이 숨기기 표시

WORDPRESS

WooCommerce에서 이월 된 항목을 기반으로 지불 게이트웨이 숨기기 표시

해결법


  1. 1.다음 기능은 발견 된 이중 기록기 항목에 대해 PayPal을 숨 깁니다. 또는 이틀 오더 항목이없는 경우 대신 대체 항목이 숨길 수 있습니다.

    다음 기능은 발견 된 이중 기록기 항목에 대해 PayPal을 숨 깁니다. 또는 이틀 오더 항목이없는 경우 대신 대체 항목이 숨길 수 있습니다.

    add_filter( 'woocommerce_available_payment_gateways', 'backordered_items_hide_cod', 90, 1 );
    function backordered_items_hide_cod( $available_gateways ) {
        // Not in backend (admin)
        if( is_admin() ) 
            return $available_gateways;
    
        $has_a_backorder = false;
    
        // Loop through cart items
        foreach( WC()->cart->get_cart() as $cart_item ){
            if( $cart_item['data']->is_on_backorder( $cart_item['quantity'] ) ) {
                $has_a_backorder = true;
                break;
            } 
        }
    
        if( $has_a_backorder ) {
            unset($available_gateways['paypal']);
        } else {
            unset($available_gateways['cod']);
        }
    
        return $available_gateways;
    }
    

    코드는 Active Child Theme (활성 테마)의 함수입니다. 테스트하고 작동합니다.

  2. from https://stackoverflow.com/questions/53131507/show-hide-payment-gateways-based-on-backordered-items-in-woocommerce by cc-by-sa and MIT license