WooCommerce 커스텀 필드 - 다중 선택
WooCommerce에서 체크아웃 페이지에 필드를 추가하고 텍스트 상자처럼 기본 필드를 추가할 수 있지만 사용자가 여러 항목을 선택할 수 있는 (멀티) 선택 상자를 추가해야 합니다.코드를 통해 다음과 같은 선택 상자를 추가하는 방법을 알아냈습니다.
add_action('woocommerce_after_order_notes', 'my_custom_checkout_field');
function my_custom_checkout_field( $checkout ) {
echo '<div id="my_custom_checkout_field"><h3>'.__('My Field').'</h3>';
woocommerce_form_field( 'my_field_name', array(
'type' => 'select',
'class' => array('my-field-class form-row-wide'),
'label' => __('Fill in this field'),
'placeholder' => __('Enter something'),
'options' => array(
'Buick' => __('Buick', 'woocommerce' ),
'Ford' => __('Ford', 'woocommerce' )
)
), $checkout->get_value( 'my_field_name' ));
echo '</div>';
}
단, 이것은 1개의 선택 드롭다운에 불과합니다.
멀티 셀렉트도 비슷한 걸 할 수 있나요?
아니면 추천할 만한 WooCommerce 내선번호가 있습니까?
조언 부탁드립니다.잘 부탁드립니다!
사용자 정의 필드 유형 처리기를 직접 생성해야 합니다.WooCommerce 소스 코드를 보면 필터를 사용할 수 있음을 알 수 있습니다.'woocommerce_form_field_' . $args['type']
아직 테스트하지 않았습니다.단일 "선택" 컨트롤에서 약간 변경된 코드입니다만, 요점은 다음과 같습니다.
add_filter( 'woocommerce_form_field_multiselect', 'custom_multiselect_handler', 10, 4 );
function custom_multiselect_handler( $field, $key, $args, $value ) {
$options = '';
if ( ! empty( $args['options'] ) ) {
foreach ( $args['options'] as $option_key => $option_text ) {
$options .= '<option value="' . $option_key . '" '. selected( $value, $option_key, false ) . '>' . $option_text .'</option>';
}
if ($args['required']) {
$args['class'][] = 'validate-required';
$required = ' <abbr class="required" title="' . esc_attr__('required', 'woocommerce') . '">*</abbr>';
}
else {
$required = ' <span class="optional">(' . esc_html__('optional', 'woocommerce') . ')</span>';
}
$field = '<p class="form-row ' . implode( ' ', $args['class'] ) .'" id="' . $key . '_field">
<label for="' . $key . '" class="' . implode( ' ', $args['label_class'] ) .'">' . $args['label']. $required . '</label>
<select name="' . $key . '" id="' . $key . '" class="select" multiple="multiple">
' . $options . '
</select>
</p>' . $args['after'];
}
return $field;
}
코드에는 '다중 선택'이라고만 기재되어 있습니다.
add_action('woocommerce_after_order_notes', 'my_custom_checkout_field');
function my_custom_checkout_field( $checkout ) {
echo '<div id="my_custom_checkout_field"><h3>'.__('My Field').'</h3>';
woocommerce_form_field( 'my_field_name', array(
'type' => 'multiselect',
'class' => array('my-field-class form-row-wide'),
'label' => __('Fill in this field'),
'placeholder' => __('Enter something'),
'options' => array(
'Buick' => __('Buick', 'woocommerce' ),
'Ford' => __('Ford', 'woocommerce' )
)
), $checkout->get_value( 'my_field_name' ));
echo '</div>';
}
이 투고에 답하기는 늦었지만, 아직 해결책을 찾고 있는 분들의 도움을 위해 이 솔루션을 추가합니다.custom_attribute를 사용하여 커스텀데이터를 추가할 수 있습니다.이것에 의해, 객관식 드롭 다운이 됩니다.
woocommerce_form_field('my_field_name',array(
type=>"select",
custom_attributes=>array("multiple"),
options=>$options
));
이 woocommerce 플러그인을 사용하면 스니펫에 문제가 있는 경우 쉽게 이 작업을 수행할 수 있습니다."Woocommerce 간편 체크아웃 필드 편집기"codecanyon에서 찾을 수 있습니다.
언급URL : https://stackoverflow.com/questions/13684533/woocommerce-custom-fields-multiselect
'programing' 카테고리의 다른 글
| Oracle에서 두 열을 하나의 열로 비교하는 방법 (0) | 2023.03.23 |
|---|---|
| Spring Boot Data JPA with H2 and data.sql - 테이블을 찾을 수 없음 (0) | 2023.03.23 |
| json gem 설치 중 오류 발생 'mkmf.rb가 루비의 헤더 파일을 찾을 수 없습니다' (0) | 2023.03.23 |
| woocommerce 관리 주문 페이지 편집 방법 (0) | 2023.03.23 |
| 상태에서의 어레이에 값을 추가하는 가장 좋은 방법은 무엇입니까? (0) | 2023.03.23 |