wordpress - 在结帐页面有条件地隐藏所选付款方式的结帐字段
问题描述
我正在使用以下代码隐藏所选付款方式的信用卡号字段。它完美地隐藏了该字段,但是当该字段被隐藏并且我单击“下订单”按钮时,它仍然显示“需要信用卡号”。
// show hide credit card fields start
add_action( 'wp_footer', 'conditionally_show_hide_card_number_field' );
function conditionally_show_hide_card_number_field(){
// Only on checkout page
if ( is_checkout() && ! is_wc_endpoint_url() ) :
?>
<script>
jQuery(function($){
var a = 'input[name="payment_method"]',
b = a + ':checked',
c = '#credit_card_number_field'; // The checkout field <p> container selector
// Function that shows or hide checkout fields
function showHide( selector = '', action = 'show' )
{
if( action == 'show' )
$(selector).show( 200, function(){
$(this).addClass("validate-required");
});
else
$(selector).hide( 200, function(){
$(this).removeClass("validate-required");
});
$(selector).removeClass("woocommerce-validated");
$(selector).removeClass("woocommerce-invalid woocommerce-invalid-required-field");
}
// Initialising: Hide if choosen payment method is "credit_card"
if( $(b).val() == 'elavon_converge_credit_card' )
showHide( c, 'hide' );
else
showHide( c );
// Live event (When payment method is changed): Show or Hide based on "credit_card"
$( 'form.checkout' ).on( 'change', a, function() {
if( $(b).val() == 'elavon_converge_credit_card' )
showHide( c, 'hide' );
else
showHide( c );
});
});
</script>
<?php
endif;
}
// show hide credit card fields ends
请建议更改代码我该如何克服这个问题。
解决方案
推荐阅读
- docker - 撰写文件必须是相同的版本 | ECS 命令行 | 码头工人撰写
- flutter - 实施建议并选择它作为firestore?
- python - 如何从两个目录导入图像数据集并为训练和测试添加标签?
- delphi - 什么是 Win10 通知图标/BalloonTipText max。长度
- sql - 如何将动态 SQL 查询输出到 SQL Server 中声明的变量中?
- flutter - 在 Flutter 中实现 RFID 的方法/步骤
- r - 获取用于填充下一行中缺失值的最新可用值 R
- android - 如何使用 cameraX 在相机应用程序中实现 FlashToggle 按钮?
- angular - Angular 使用字符串作为插座名称
- path - 将命令添加到 /usr/local/bin 后在 zsh 中“找不到命令”