Wordpress Woocommerce 사용자 지정 배송 필드(AJAX)에서 값 가져오기
그래서 저는 우커머스를 이용한 전자상거래를 하고 있으며 트랙 배송비는 커스텀 배송을 이용합니다.그리고 이미 새로운 입력 데이터를 추가했습니다(선택).아래 그림에서 볼 수 있는 것처럼:
// Hook in
add_filter('woocommerce_checkout_fields', 'custom_override_checkout_fields');
// Our hooked in function - $fields is passed via the filter!
function custom_override_checkout_fields($fields) {
$fields['billing']['billing_city'] = array(
'type' => 'select',
'label' => __('Kota / Kabupaten', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide', 'address-field'),
'clear' => true,
'options' => array(
'' => 'Pilih Kota / Kabupaten'
)
);
$fields['shipping']['shipping_city'] = array(
'type' => 'select',
'label' => __('Kota / Kabupaten', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide', 'address-field'),
'clear' => true,
'options' => array(
'' => 'Pilih Kota / Kabupaten'
)
);
$fields['billing']['billing_subdistrict'] = array(
'type' => 'select',
'label' => __('Kecamatan', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide', 'address-field'),
'clear' => true,
'options' => array(
'' => 'Pilih Kecamatan'
)
);
$fields['shipping']['shipping_subdistrict'] = array(
'type' => 'select',
'label' => __('Kecamatan', 'woocommerce'),
'required' => true,
'class' => array('form-row-wide', 'address-field'),
'clear' => true,
'options' => array(
'' => 'Pilih Kecamatan'
)
);
return $fields;
}
Woocommerce 기본 데이터는 address_1, address_2, country, state, city를 가지고 있었지만 subdistrict라는 데이터가 하나 더 필요합니다.그 데이터(하위 구역)는 저장할 필요가 없습니다.하지만 저는 그 값을 트랙 배송비의 파라미터로 사용해야 합니다.
저는 이미 새로운 class-custom-shipping-delivery.php를 만들고 $subdistrict 데이터를 수동으로 설정하려고 하기 때문에 이미 그 기능이 완벽하게 작동하는지 확인하고 있습니다.
//custom-shipping.php
$province = $package['destination']['state'];
$city = $package['destination']['city'];
$subdistrict= 'something';
//How to get the data from custom field (ajax)
//because I need to see the shipping fee result before Checkout (and update it to add rate)
$destination_code = $this->getDestinationCode($province,$city,$subdistrict);
$ongkir = $this->cek_ongkir($origin,$destination_code,$weight);
//print_r();
// send the final rate to the user.
$this->add_rate(array(
'id' => $this->id,
'label' => $this->title,
'cost' => $ongkir
));
요약:.
하위 구역에서 값을 가져오는 방법 입력 유형 선택(체크아웃 페이지)?
죄송합니다. 제가 다른 사람의 작업을 편집해서 그 코드를 전혀 이해할 수 없습니다.하지만 그들이 그 값을 받는 것을 잊어버린 것 같습니다. 왜냐하면 그들은 하드 코딩을 하기 때문이고 저는 워드프레스 초보자이기 때문에 체크아웃 양식에 데이터를 전달하는 방법을 모릅니다.
잠시 답을 검색한 후에 저는 답을 얻습니다.
요약: 위의 답변 세션을 사용하여 배송 사용자 지정 필드(ajax)에서 데이터를 가져옵니다.그래서 AJAX가 실행될 때.subdistrict' 필드의 값을 함수로 전송하여 세션에 저장합니다.
function ajax_process($subdistrict){
//some code
session_start();
$_SESSION['subdistrict'] = $subdistrict;
}
그런 다음 다른 함수에서 세션 데이터를 잊어버립니다. 이 코드를 실행합니다.
@session_start();
$subdistrict = $_SESSION['subdistrict'];
여기 Woocommerce용 Checkout Field Editor라는 플러그인이 있습니다.
https://docs.woocommerce.com/document/checkout-field-editor/
그 플러그인은 단일 사이트 라이센스에 49달러인 것 같습니다.
다른 옵션은 직접 코딩하는 것입니다.여기 튜토리얼이 있습니다.
언급URL : https://stackoverflow.com/questions/40353727/wordpress-woocommerce-get-value-from-custom-shipping-field-ajax
'programing' 카테고리의 다른 글
Firebase 인증 사용자 UID를 가져올 수 있는 방법이 있습니까? (0) | 2023.06.18 |
---|---|
Firebase에서 사용자 지정 하위 도메인을 만들려면 어떻게 해야 합니까? (0) | 2023.06.18 |
판다의 열 순서를 _csv 방법으로 보존 (0) | 2023.06.13 |
LINQ에서 SQL로 절 지정(선택 사항) 기준 (0) | 2023.06.13 |
내일 날짜를 알 수 있는 가장 깨끗하고 가장 파이썬적인 방법? (0) | 2023.06.13 |