WooCommerce에서 배송 방법 가격을 업데이트하는 동적 방법
P粉605233764
P粉605233764 2023-08-13 18:08:43
0
1
441
<p>내 배송 방법에 대한 배송 가격을 동적으로 업데이트하려고 합니다. API에서 배송비를 가져오고 API 응답에서 가격을 성공적으로 가져오면 가격을 업데이트하고 싶습니다. 저는 다음 코드를 사용하고 있습니다: </p> <pre class="brush:php;toolbar:false;">function handler_api_response( $rates ) { //API 호출 코드는 여기에 있습니다..... if ($response_code === 200){ $response_data = json_decode($response, true); $price = $response_data['배송'] } add_filter( 'woocommerce_package_rates', 'set_shipping_prices', PHP_INT_MAX, 1 ); 함수 set_shipping_prices( $rates ) { foreach ( $rates as $rate_id => $rate ) { $rates[ $rate_id ]->비용 = $price; } $rates를 반환합니다. } }</pre> <p>위 코드는 작동하지 않지만, 필터를 handler_api_response 함수 밖으로 옮기고 수수료에 정적 값을 설정하면 작동하는 것 같습니다. 다음과 같습니다: </p> <pre class="brush:php;toolbar:false;">function handler_api_response( $rates ) { //API 호출 코드는 여기에 있습니다..... if ($response_code === 200){ $response_data = json_decode($response, true); $price = $response_data['배송'] } } add_filter( 'woocommerce_package_rates', 'set_shipping_prices', PHP_INT_MAX, 1 ); 함수 set_shipping_prices( $rates ) { foreach ( $rates as $rate_id => $rate ) { $rates[ $rate_id ]->비용 = 50; } $rates를 반환합니다. }</pre> <p>내 문제는 API에서 가격 값을 가져오고 있으므로 필터가 트리거될 때 실행되는 set_shipping_prices 함수에 API 응답의 가격을 전달해야 한다는 것입니다. </p>
P粉605233764
P粉605233764

모든 응답(1)
P粉718165540

이 코드는 테스트되지 않았으며 약간의 조정이 필요할 수 있지만 외부 API 호출이 작동하도록 하는 올바른 경로가 될 수 있습니다.

WC_Session 변수를 사용하여 전달하려는 배송비를 설정할 수 있습니다.

으아아아

그런 다음 후크 함수에서 WC_Session 변수를 호출할 수 있습니다.

으아아아

그러나 캐시된 배송 방법을 적용하려면 캐시된 배송 방법을 새로 고치기 위한 다른 방법이 필요합니다.

으아아아

마지막으로 WC 세션 변수를 설정 해제합니다. (체크아웃 첫 로드 및 감사 페이지) :

으아아아

코드를 하위 테마의 function.php 파일(또는 플러그인)에 넣으세요. 작동할 수도 있습니다.

관련: WooCommerce 체크아웃에서 맞춤 체크박스를 선택한 후 배송비 제거

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!