如何正确地在前端排队 select2?
How to enque select2 on frontend correctly?
在结帐时我需要城市的下拉列表。我不处理国家和地区领域,所以它们根本没有设置。为了使城市字段成为下拉菜单而不是文本,我使用了该代码。
add_filter( 'woocommerce_checkout_fields' , 'override_checkout_city_fields' );
function override_checkout_city_fields( $fields ) {
// Define here in the array your desired cities (Here an example of cities)
$option_cities = array(
'' => __( 'Choose your city' ),
'City1' => 'City1',
'City2' => 'City2',
);
$fields['billing']['billing_city']['type'] = 'select';
$fields['billing']['billing_city']['options'] = $option_cities;
$fields['shipping']['shipping_city']['type'] = 'select';
$fields['shipping']['shipping_city']['options'] = $option_cities;
return $fields;
}
对我有用。但我需要的不是简单的select,而是select2。我以为它已经在 checkkout 中启用了,但只是
jQuery('select#billing_city').select2();
不起作用。
我尝试了这个著名的片段
function enqueue_select2_jquery() {
wp_register_style( 'select2css', '//cdnjs.cloudflare.com/ajax/libs/select2/3.4.8/select2.css', false, '1.0', 'all' );
wp_register_script( 'select2', '//cdnjs.cloudflare.com/ajax/libs/select2/3.4.8/select2.js', array( 'jquery' ), '1.0', true );
wp_enqueue_style( 'select2css' );
wp_enqueue_script( 'select2' );
}
add_action( 'admin_enqueue_scripts', 'enqueue_select2_jquery' );
function select2jquery_inline() {
?>
<style type="text/css">
.select2-container {margin: 0 2px 0 2px;}
.tablenav.top #doaction, #doaction2, #post-query-submit {margin: 0px 4px 0 4px;}
</style>
<script type='text/javascript'>
jQuery(document).ready(function ($) {
if( $( 'select' ).length > 0 ) {
$( 'select' ).select2();
$( document.body ).on( "click", function() {
$( 'select' ).select2({
theme: "classic"
});
});
}
});
</script>
<?php
}
add_action( 'admin_head', 'select2jquery_inline' );
也没有用。
如何以正确的方式使我的 select 带有搜索选项的蓝色?
由于 selectWoo
是 Select2 的 WooCommerce 替代品,它已经加入 WooCommerce 队列,您可以简单地使用 wc_enqueue_js
并调用它。
add_action( 'woocommerce_before_checkout_form', 'add_select2_to_city' );
function add_select2_to_city(){
wc_enqueue_js( "$('select#billing_city').selectWoo();");
}
将此添加到您的 functions.php。
在结帐时我需要城市的下拉列表。我不处理国家和地区领域,所以它们根本没有设置。为了使城市字段成为下拉菜单而不是文本,我使用了该代码。
add_filter( 'woocommerce_checkout_fields' , 'override_checkout_city_fields' );
function override_checkout_city_fields( $fields ) {
// Define here in the array your desired cities (Here an example of cities)
$option_cities = array(
'' => __( 'Choose your city' ),
'City1' => 'City1',
'City2' => 'City2',
);
$fields['billing']['billing_city']['type'] = 'select';
$fields['billing']['billing_city']['options'] = $option_cities;
$fields['shipping']['shipping_city']['type'] = 'select';
$fields['shipping']['shipping_city']['options'] = $option_cities;
return $fields;
}
对我有用。但我需要的不是简单的select,而是select2。我以为它已经在 checkkout 中启用了,但只是
jQuery('select#billing_city').select2();
不起作用。 我尝试了这个著名的片段
function enqueue_select2_jquery() {
wp_register_style( 'select2css', '//cdnjs.cloudflare.com/ajax/libs/select2/3.4.8/select2.css', false, '1.0', 'all' );
wp_register_script( 'select2', '//cdnjs.cloudflare.com/ajax/libs/select2/3.4.8/select2.js', array( 'jquery' ), '1.0', true );
wp_enqueue_style( 'select2css' );
wp_enqueue_script( 'select2' );
}
add_action( 'admin_enqueue_scripts', 'enqueue_select2_jquery' );
function select2jquery_inline() {
?>
<style type="text/css">
.select2-container {margin: 0 2px 0 2px;}
.tablenav.top #doaction, #doaction2, #post-query-submit {margin: 0px 4px 0 4px;}
</style>
<script type='text/javascript'>
jQuery(document).ready(function ($) {
if( $( 'select' ).length > 0 ) {
$( 'select' ).select2();
$( document.body ).on( "click", function() {
$( 'select' ).select2({
theme: "classic"
});
});
}
});
</script>
<?php
}
add_action( 'admin_head', 'select2jquery_inline' );
也没有用。 如何以正确的方式使我的 select 带有搜索选项的蓝色?
由于 selectWoo
是 Select2 的 WooCommerce 替代品,它已经加入 WooCommerce 队列,您可以简单地使用 wc_enqueue_js
并调用它。
add_action( 'woocommerce_before_checkout_form', 'add_select2_to_city' );
function add_select2_to_city(){
wc_enqueue_js( "$('select#billing_city').selectWoo();");
}
将此添加到您的 functions.php。