如何使WooCommerce Checkout中的自定义选择框看起来像其他选择框


How can I make a custom select box in WooCommerce Checkout look like the other select boxes?

我在问这个问题之前做了一些研究,我无法找到我正在寻找的答案。我在billing下为结帐页面创建了一个自定义选择框。它是完整的,因为它在页面上工作,提交数据,甚至将数据添加到电子邮件中。然而,它看起来不太好。我希望它看起来像Country和State下拉框,样式方面。下面是代码:

add_filter( 'woocommerce_checkout_fields' , 'custom_store_pickup_field');
function custom_store_pickup_field( $fields ) {
  $fields['billing']['my_field_name'] = array(
    'type'          => 'select',
    'options'       => array(
    'Option 1'      => 'Select if choosing local pickup',
    'Option 2'      => 'Address 1, etc.',
    ),
    'class'         => array('own-css-name'),
    'label'         => __('<br /><p style="font-size:20px;">Please Choose A Pickup Location (if applicable, otherwise skip)'),
    );
return $fields;
}

我在网上读到你可以把它改成own-css-name,所以我尝试了一下(如上所示),但我不确定这意味着什么?我该用什么css名称来匹配国家和州的样式,因为这些样式是WooCommerce自带的,它们不是自定义的?

编辑:我已经提出了一个解决方案来检查元素,找到类,并使用简单的自定义CSS来覆盖和分配与国家和州相同的属性。然而,这似乎不是最有说服力的解决方案。我在想有没有更好的办法。

您需要添加一些自定义JavaScript来将selected样式应用到新的下拉菜单中。默认情况下,WooCommerce将此应用于具有select.chosen_select类的选择框,但是从查看代码中无法将.chosen_select类应用于实际的选择框,class属性应用于该字段的父容器,因此新的JavaScript应用该样式。

jQuery('.own-css-name select').chosen();