woocommerce에 커스텀 배송료를 추가하는 방법은?
woocommerce에서 코드를 사용하여 배송비를 추가하고 싶습니다.여기 제 요구 사항이 있습니다.
배송국이 호주라면 배송료가 다르고 호주 이외에서도 다릅니다.만약 나의 선적국이 호주이고
1. if order value is < 100, then shipping charge is $100
2. if order value is > 100, then shipping charge is $0.
만약 나의 배송국이 호주 밖에 있고
1. if order value is < 500, then shipping charge is $60
2. if order value is > 500 and < 1000, then shipping charge is $50
3. if order value is > 1000, then shipping charge is $0
따라서 체크아웃 페이지에서 배송 국가를 사용자가 변경할 때 위의 요구 사항에 따라 커스텀 배송료를 추가하는 방법은 무엇입니까?아래 코드를 시도했지만 주문 금액으로만 동작합니다.커스텀 플러그인에 아래 코드의 배송 국가를 추가하는 방법은 무엇입니까?
class WC_Your_Shipping_Method extends WC_Shipping_Method {
public function calculate_shipping( $package ) {
global $woocommerce;
if($woocommerce->cart->subtotal > 5000) {
$cost = 30;
}else{
$cost = 3000;
}
}
$rate = array(
'id' => $this->id,
'label' => $this->title,
'cost' => $cost,
'calc_tax' => 'per_order'
);
// Register the rate
$this->add_rate( $rate );
}
후크를 사용할 수 있는 배송비용으로 커스텀 플러그인을 만드는 것이 좋습니다.
먼저 커스텀 플러그인에서 'WC_Your_Shipping_Method' 클래스를 확장하고 다음과 같이 작동합니다.
public function calculate_shipping( $package ) {
session_start();
global $woocommerce;
$carttotal = $woocommerce->cart->subtotal;
$country = $_POST['s_country']; //$package['destination']['country'];
if($country == 'AU')
{
if($carttotal > 100){
$cost = 5;
}else{
$cost = 10;//10.00;
}
}
else
{
if($carttotal < 500){
$cost = 60;//60.00;
}else if($carttotal >= 500 && $carttotal <= 1000){
$cost = 50;//50.00;
}else if($carttotal > 1000){
$cost = 0;
}
}
$rate = array(
'id' => $this->id,
'label' => 'Shipping',
'cost' => $cost,
'calc_tax' => 'per_order'
);
// Register the rate
$this->add_rate( $rate );
}
먼저 관리자 이름으로 배송 방법을 'myship'으로 만듭니다.
테마 함수에 아래 코드를 추가합니다.php 파일
add_action('woocommerce_before_cart_table', 'discount_when_produts_in_cart');
function discount_when_produts_in_cart( ) {
global $woocommerce;
$coupon_code = 'myship';
if( $woocommerce->cart->get_cart_total() > 500 ) {
$coupon_code = 'myship';
}
else
{
$woocommerce->cart->remove_coupons(sanitize_text_field($coupon_code));
$woocommerce->clear_messages();
}
언급URL : https://stackoverflow.com/questions/27666501/how-to-add-custom-shipping-charge-in-woocommerce
'programing' 카테고리의 다른 글
MongoDB에서 가장 큰 문서 크기 찾기 (0) | 2023.03.15 |
---|---|
jQuery 및 JSON을 사용하여 양식을 채우시겠습니까? (0) | 2023.03.15 |
Chrome 업데이트로 인해 Ajax/Angular Network 렌더링 및 로드 속도가 느려졌습니다. (0) | 2023.03.15 |
둘 중 하나 또는 둘 중 하나(다른 두 필드 중 하나)를 모두 필요로 하지 않는 방법은 무엇입니까? (0) | 2023.03.15 |
스프링 부트:단위시험에서 액화효소로 시험데이터를 설정하는 방법 (0) | 2023.03.15 |