programing

프로그래밍 방식으로 배송 방법 설정 우커머스

topblog 2023. 10. 5. 21:05
반응형

프로그래밍 방식으로 배송 방법 설정 우커머스

나는 방금 다음과 같은 아이디로 커스텀 우커머스 배송 방법을 만들었습니다.custom_shipping. 이제 Woocommerce -> Settings -> Shipping admin 페이지에 옵션이 나타납니다.

사용자의 자격증을 바탕으로 배송 방법을 동적으로 설정하고 싶습니다.기본 메서드는flat_rate지금 당장.

질문:배송 방법은 어떻게 설정해야 합니까?custom_shipping요구사항을 충족하는 사용자, 세션 전체에 대해?

시도:

$chosen_methods = $woocommerce->session->set('chosen_shipping_methods', array('purolator_shipping');

이것은 세션 변수 'choosed_shipping_methods'를 올바르게 설정합니다.cart페이지를 호출하지만 이동할 때checkout, 세션은 사용으로 돌아갑니다.flat_rate선적방법

카트 세션 생성 시 배송 방법을 변경하기 위해 연결할 수 있는 후크 또는 필터가 있어야 합니다(사용자가 카트에 처음 추가할 때).

저는 이상적으로 그들의 카트와 체크아웃 요약에서 배송 방법이 정확하게 보이도록 다른 것이 로딩되기 전에 새로운 배송 방법을 설정하고 싶습니다.

안내 감사했습니다.

사용.woocommerce_before_checkout_shipping_form갈고리를

add_action( 'woocommerce_before_checkout_shipping_form', 'before_shipping');

function before_shipping( $checkout ) {

    // check the user credentials here and if the condition is met set the shipping method

    WC()->session->set('chosen_shipping_methods', array( 'purolator_shipping' ) );

}

참고로 카트 페이지에서 사용자가 배송 방법을 기본 방법에서 다른 방법으로 변경하면 위 코드는 다시 체크아웃 페이지의 기본 방법으로 되돌리기 때문에 사용자가 조금 혼란스러워 할 것입니다.

// WC()->session->set('chosen_shipping_methods', array( 'your_shipping_rate_id_here' ) );

예:

WC()->session->set('chosen_shipping_methods', array( 'flat_rate:1' ) );

언급URL : https://stackoverflow.com/questions/32514094/set-shipping-method-programmatically-woocommerce

반응형