【问题标题】:Conditionally unset checkout fields if certain type of person is selected如果选择了特定类型的人,则有条件地取消设置结帐字段
【发布时间】:2021-09-17 00:17:39
【问题描述】:

如何创建一个函数 (code-sn-ps) 以根据人员字段的类型取消设置或使结帐 woocommerce 字段不需要?

有 2 个客户选项:公司或个人。例如,如果选择了一个人,公司的字段仍然显示为必填项。

www.riobaldo.com.br

感谢您的帮助..

非常感谢..

【问题讨论】:

  • 请描述更多,因为我正在检查公司文件是否根据“人员类型”下拉更改显示/隐藏。那么到底想要什么?
  • 使该字段可选,不需要。之后使用 js jquery 根据选择进行验证。检查这个例子 - stackoverflow.com/questions/54927919/…
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: php wordpress function woocommerce code-snippets


【解决方案1】:

据我们了解,您希望根据某些类型从公司输入字段中添加/删除需要验证(下拉更改)。

现在你可以这样做了:

add_action( 'wp_footer', 'conditionally_remove_require_fields' );
function conditionally_remove_require_fields(){
    // Only on checkout page
    if ( is_checkout() && ! is_wc_endpoint_url() ) : ?>
    <script>
        jQuery(document).on('change','#billing_persontype', function(){
            var opt = jQuery(this).val();
            var selector = '#billing_company_field';
            if(opt == 2){
                jQuery(selector).removeAttr('required');
                jQuery(selector).removeClass("validate-required");
                jQuery(selector + ' label .required').hide();
            }else{
                jQuery(selector).attr('required',true);
                jQuery(selector).addClass("validate-required");
                jQuery(selector + ' label .required').show();
            }
        });
    </script>
    <?php
    endif;
}

你可以根据opt value(1,2)做相应的修改。

【讨论】:

  • 您好 Rajeev,感谢您的回复。我通过关闭必填字段来解决这个问题。它位于面板 > 外观 > 个性化 > Woocommerce。但是现在我很难改变第一行和最后一行的课程。例如, billing_neighborhood 第一行和 billing_city 最后一行。
猜你喜欢
  • 2016-09-03
  • 2018-02-04
  • 2011-05-21
  • 1970-01-01
  • 2018-01-03
  • 1970-01-01
  • 2018-05-05
  • 2018-05-24
  • 2018-05-23
相关资源
最近更新 更多