为 wordpress 设置屏蔽输入
Set maskedinput for wordpress
您好,我在WordPress上建站,需要设置phone掩码on checkout page.
我从 GitHub 获得文件 jquery.maskedinput.min.js 并在途中上传到主机:
wp-content/themes/woodmart-child/js/
然后我在子主题的function.php中添加了脚本:
add_action('wp_enqueue_scripts', 'my_maskedinput', 10);
function my_maskedinput() {
if (is_checkout()) {
wp_enqueue_script('maskedinput', '/wp-content/themes/woodmart-child/js/jquery.maskedinput.min.js', array('jquery'));
add_action( 'wp_footer', 'masked_script', 999);
}
}
function masked_script() {
if ( wp_script_is( 'jquery', 'done' ) ) {
?>
<script type="text/javascript">
jQuery( function( $ ) {
$("#billing_phone").mask("+7(999)999-99-99");
});
</script>
<?php
}
}
但是 phone 掩码没有显示在结帐页面上。我检查了 DevTools,代码
<script type="text/javascript">
jQuery( function( $ ) {
$("#billing_phone").mask("+7(999)999-99-99");
});
</script>
添加到 html 文件中。但是错误在哪里呢?我做错了什么?
upd:我尝试通过 str_replace(但它也不起作用):
add_filter( 'woocommerce_form_field', 'my_maskedinput', 20, 4 );
function my_maskedinput( $field, $key, $args, $value ) {
// Only on checkout page
if( is_checkout() && ! is_wc_endpoint_url() ) {
$phone = ' <input type="tel" class="input-text " name="billing_phone" id="billing_phone" placeholder="Номер телефона" value autocomplete="tel">';
$field = str_replace( $phone, ' <input type="tel" class="input-text" name="billing_phone" id="billing_phone" placeholder="Номер телефона" value autocomplete="tel" mask="+7 (999) 999-99-99">', $field );
}
return $field;
}
我检查了文件 jquery.maskedinput.min.js,它不包含正确的脚本。
我从 here 获得了文件并将其上传到主机上。然后就可以了!
您好,我在WordPress上建站,需要设置phone掩码on checkout page. 我从 GitHub 获得文件 jquery.maskedinput.min.js 并在途中上传到主机:
wp-content/themes/woodmart-child/js/
然后我在子主题的function.php中添加了脚本:
add_action('wp_enqueue_scripts', 'my_maskedinput', 10);
function my_maskedinput() {
if (is_checkout()) {
wp_enqueue_script('maskedinput', '/wp-content/themes/woodmart-child/js/jquery.maskedinput.min.js', array('jquery'));
add_action( 'wp_footer', 'masked_script', 999);
}
}
function masked_script() {
if ( wp_script_is( 'jquery', 'done' ) ) {
?>
<script type="text/javascript">
jQuery( function( $ ) {
$("#billing_phone").mask("+7(999)999-99-99");
});
</script>
<?php
}
}
但是 phone 掩码没有显示在结帐页面上。我检查了 DevTools,代码
<script type="text/javascript">
jQuery( function( $ ) {
$("#billing_phone").mask("+7(999)999-99-99");
});
</script>
添加到 html 文件中。但是错误在哪里呢?我做错了什么?
upd:我尝试通过 str_replace(但它也不起作用):
add_filter( 'woocommerce_form_field', 'my_maskedinput', 20, 4 );
function my_maskedinput( $field, $key, $args, $value ) {
// Only on checkout page
if( is_checkout() && ! is_wc_endpoint_url() ) {
$phone = ' <input type="tel" class="input-text " name="billing_phone" id="billing_phone" placeholder="Номер телефона" value autocomplete="tel">';
$field = str_replace( $phone, ' <input type="tel" class="input-text" name="billing_phone" id="billing_phone" placeholder="Номер телефона" value autocomplete="tel" mask="+7 (999) 999-99-99">', $field );
}
return $field;
}
我检查了文件 jquery.maskedinput.min.js,它不包含正确的脚本。 我从 here 获得了文件并将其上传到主机上。然后就可以了!