在Woocommerce结帐页面中替换“州”选择字段第一个选项文本

时间:2018-04-06 13:56:32

标签: php jquery wordpress woocommerce checkout

为什么此代码仅替换我的结算状态默认值文本而不是我的发货状态默认选择值文本?

 // 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);

2 个答案:

答案 0 :(得分:3)

可能是因为航运领域在开始时隐藏了......请尝试以下方法:

// 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文件中。经过测试和工作。

答案 1 :(得分:0)

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

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')); 
            })