WooCommerce: 체크아웃 시 한 개의 주/시로 사전 선택 및 제한
한 도시에만 파는 가게를 차리고 있어요.도시 옵션을 미리 채워진 필드로 제한할 방법을 찾고 있습니다.
이미 국가를 제한했고 다음 코드를 사용하고 있습니다.functions.php
:
add_filter( 'default_checkout_country', 'change_default_checkout_country' );
add_filter( 'default_checkout_state', 'change_default_checkout_state' );
function change_default_checkout_country() {
return 'PK'; // country code
}
function change_default_checkout_state() {
return 'SD'; // state code
}
그리고 다음 항목을 사용하여 상태를 미리 선택했습니다.
add_filter( 'woocommerce_states', 'bbloomer_custom_woocommerce_states' );
function bbloomer_custom_woocommerce_states( $states ) {
$states['PK'] = array(
'SD' => 'Sindh',
);
return $states;
}
하지만... 이제 도시가 오고 난 길을 잃었어.사용해보았습니다.$fields['billing']['billing_city']
게다가$fields['billing']['billing_city']['value']
헛수고다.
손님은 카라치로 한정해 주셨으면 합니다.저는 WooCommerce 필터에 대해 잘 모르기 때문에 도움이 필요합니다.
woocommerce 3 및 필터 훅은 폐지되어 치환되었습니다.
또, 마지막 기능에서는, 1개의 도시만을 제한하고 싶은 경우는, 그 도시를 주의 배열에 포함시키지 말아 주세요.대신 가능한 값은 하나만 반환해야 합니다.
그럼 이게 네 코드야
// default checkout country
add_filter( 'default_checkout_billing_country', 'change_default_checkout_country' );
add_filter( 'default_checkout_shipping_country', 'change_default_checkout_country' );
function change_default_checkout_country() {
return 'PK'; // country code
}
// default checkout state
add_filter( 'default_checkout_billing_state', 'change_default_checkout_state' );
add_filter( 'default_checkout_shipping_state', 'change_default_checkout_state' );
function change_default_checkout_state() {
return 'SD'; // state code
}
// Setting one state only
add_filter( 'woocommerce_states', 'custom_woocommerce_state', 10, 1 );
function custom_woocommerce_state( $states ) {
// Returning a unique state
return array('PK' => array('SD' => 'Sindh'));
}
// Only one city at checkout
add_filter( 'woocommerce_checkout_fields', 'custom_checkout_fields', 10, 1 );
function custom_checkout_fields( $fields ) {
$fields['billing']['billing_city']['type'] = 'select';
$fields['billing']['billing_city']['options'] = array('Karachi' => 'Karachi');
$fields['shipping']['shipping_city']['type'] = 'select';
$fields['shipping']['shipping_city']['options'] = array('Karachi' => 'Karachi');
return $fields;
}
코드가 기능합니다.php 파일 또는 임의의 플러그인 파일에 있는 활성 자식 테마(또는 테마)입니다.
이 코드는 테스트되었으며 wooCommerce 버전 3 이상에서 작동합니다.
위의 코드를 추가하고 저장하면,
WooCommerce > Settings > General
위치를 다음과 같이 설정하려면:
그러면 체크아웃 시 다음과 같은 정보가 제공됩니다.
두 드롭다운 모두 값이 하나뿐입니다.기대했던 것을 얻을 수 있습니다.
언급URL : https://stackoverflow.com/questions/45444618/woocommerce-pre-select-and-restrict-to-one-state-and-city-on-checkout
'prosource' 카테고리의 다른 글
스프링 부트에서의 spring-data-mongodb 자동 설정을 디세블로 하는 방법 (0) | 2023.03.04 |
---|---|
MongoDB: 배열 필드에 요소가 포함되어 있는지 확인하는 방법 (0) | 2023.03.04 |
워드프레스 데이터베이스에서 제품 속성을 가져오는 방법 (0) | 2023.03.04 |
스크롤이 80%에 도달하면 에이잭스 로드 (0) | 2023.03.04 |
생산 코드의 Mongoose 인덱싱 (0) | 2023.02.27 |