替换 Woocommerce 结帐页面中的 "state" select 字段第一个选项文本

Replace "state" select field first option text in Woocommerce checkout page

为什么此代码仅替换我的账单状态默认值文本而不替换我的发货状态默认 select 值文本?

 // Replace text in woo checkout
    function ea_custom_script_woo_checkout(){
    if(is_checkout()){
        echo "<script type=\"text/javascript\" >
            jQuery( document ).ready(function() {
                jQuery('#billing_state option, #shipping_state option').each(function() {
                    var text = jQuery(this).text();
                    jQuery(this).text(text.replace('Seleziona un\'opzione…', 'Seleziona una provincia')); 
                })
            });
        </script>";
    }
}
add_action('wp_footer', 'ea_custom_script_woo_checkout', 90, 1);

因为你有两个不同的集合,每个函数只迭代一个集合,你能不能把这些集合分开

jQuery('#billing_state option').each(function() {
                var text = jQuery(this).text();
                jQuery(this).text(text.replace('Seleziona un\'opzione…',     'Seleziona una provincia')); 
jQuery('#shipping_state option').each(function() {
                var text = jQuery(this).text();
                jQuery(this).text(text.replace('Seleziona un\'opzione…',     'Seleziona una provincia')); 
            })

可能是因为运费字段在开始时被隐藏了...请尝试以下操作:

// Replace state select field placeholder option text in checkout 
add_action('wp_footer', 'custom_script_in_checkout', 100, 1);
function custom_script_in_checkout(){
if( ! is_checkout() ) return;
    ?>
    <script type="text/javascript" >
        jQuery( function($){
            function changeStateOptionText(){
                $('select[name=billing_state] option, select[name=shipping_state] option').each( function() {
                    if($(this).text() == "Seleziona un'opzione…")
                        $(this).text("Seleziona una provincia");
                });
            }
            setTimeout( changeStateOptionText, 200);

            // To be sure (if shipping fields are hidden)
            $('checkbox[name=ship_to_different_address]').change(function() {
                changeStateOptionText();
            });
        });
    </script>";
    <?php
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。