php – WooCommerce自定义字段 – 多重选择
发布时间:2020-12-13 16:00:42 所属栏目:PHP教程 来源:网络整理
导读:我在WooCommerce的结帐页面添加了额外的字段,我可以添加一个文本框等基本字段,但需要添加一个(多)选择框,用户可以在其中选择多个项目.我已经弄清楚如何通过代码添加一个选择框,像这样: add_action('woocommerce_after_order_notes','my_custom_checkout_fie
我在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>'; } 但这只是一个选择下拉菜单. 请咨询,谢谢提前!
您需要创建自己的自定义字段类型处理程序.如果你看看
WooCommerce source code,你会看到你可以使用过滤器:’woocommerce_form_field_’.的$args [ ‘类型’]
我还没有真正测试过这个,这只是从单一的“选择”控件只是略微改变了代码,但是你得到点: 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>'; } $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>' . $after; } return $field; } 而在您的代码中,只将该类型称为“多选”: add_action('woocommerce_after_order_notes',array( 'type' => 'multiselect','placeholder' => __('Enter something'),'options' => array( 'Buick' => __('Buick',$checkout->get_value( 'my_field_name' )); echo '</div>'; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |