如果选择了特定类别,是否可以在结帐页面上隐藏自定义下拉字段

拉尔斯

在WooCommerce中,我尝试删除“个性化”产品类别的不必要的结帐下拉服装字段

/这是我的服装领域/

add_action( 'woocommerce_before_order_notes', 'add_checkout_custom_fields', 20, 1 );
function add_checkout_custom_fields( $checkout) {
    $domain = 'woocommerce'; // The domain slug

    echo '<h2>'.__( 'Populating In Woocommerce Checkout', $domain ).'</h2>';

    // First Select field (Populating options one)
    woocommerce_form_field( 'populating_one', array(
        'type'          => 'select',
        'label'         => __( 'Populating options one' , $domain),
        'class'         => array( 'form-row-wide' ),
        'required'       => true,
        'options'       => array(
            ''  => __( 'Please select a value', $domain ),
            'A' => __( 'A', $domain ),
            'B' => __( 'B', $domain ),
            'C' => __( 'C', $domain ),
        ),
    ),
    $checkout->get_value( 'populating_one' ) );

    // Default option value
    $default_option2 = __( 'Please select a value', $domain );

    // Dynamic select field options for Javascript/jQuery
    $options_0 = array( '' => $default_option2 );
    $options_a = array(
        ''  => $default_option2,
        'A1' => __( 'A1', $domain ),
        'A2' => __( 'A2', $domain ),
        'A3' => __( 'A3', $domain ),
        'A4' => __( 'A4', $domain ),
    );
    $options_b = array(
        ''  => $default_option2,
        'B1' => __( 'B1', $domain ),
        'B2' => __( 'B2', $domain ),
        'B3' => __( 'B3', $domain ),
        'B4' => __( 'B4', $domain ),
    );
    $options_c = array(
        ''  => $default_option2,
        'C1' => __( 'C1', $domain ),
        'C2' => __( 'C2', $domain ),
        'C3' => __( 'C3', $domain ),
        'C4' => __( 'C4', $domain ),
    );

    // Second Select field (Populating options two)
    woocommerce_form_field( 'populating_two', array(
        'type'          => 'select',
        'label'         => __( 'Populating options two', $domain ),
        'class'         => array( 'form-row-wide' ),
        'required'       => true,
        'options'       => $options_0,
    ),
    $checkout->get_value( 'populating_two' ) );

    $required = esc_attr__( 'required', 'woocommerce' );

    // jQuery code
?>
    <script>
    jQuery(function($){
        var op0 = <?php echo json_encode($options_0); ?>,
        opa = <?php echo json_encode($options_a); ?>,
        opb = <?php echo json_encode($options_b); ?>,
        opc = <?php echo json_encode($options_c); ?>,
        select1 = 'select[name="populating_one"]',
        select2 = 'select[name="populating_two"]';


        function dynamicSelectOptions( opt ){
            var options = '';
            $.each( opt, function( key, value ){
                options += '<option value="'+key+'">'+value+'</option>';
            });
            $(select2).html(options);
        }

        // 1. When dom is loaded we add the select field option for "A" value
        // => Disabled (optional) — Uncomment below to enable
        // dynamicSelectOptions( opa );

        // 2. On live selection event on the first dropdown
        $(select1).change(function(){
            if( $(this).val() == 'A' )
                dynamicSelectOptions( opa );
            else if( $(this).val() == 'B' )
                dynamicSelectOptions( opb );
            else if( $(this).val() == 'C' )
                dynamicSelectOptions( opc );
            else
                dynamicSelectOptions( op0 ); // Reset to default
        });
    });
    </script>
<?php
}

/我的功能/

add_filter( 'woocommerce_checkout_fields', 'conditionally_remove_checkout_fields', 25, 1 );
function conditionally_remove_checkout_fields( $fields ) {


    $categories = array('personalized');

    $found = false;


    foreach ( WC()->cart->get_cart() as $cart_item ){
        if( has_term( $categories, 'product_cat', $cart_item['product_id'] ) ) {
            $found = true;
            break;
        }
    }


    if ( $found ) {

        // hide the billing fields


        // hide the additional information section
        add_filter( 'woocommerce_checkout_custom_field', '__return_false' );
    }
    return $fields;
}
吉里什

您可以使用unset删除该字段。例如,删除两个选择字段

add_filter( 'woocommerce_checkout_fields', 'conditionally_remove_checkout_fields', 25, 1 );
function conditionally_remove_checkout_fields( $fields ) {


    $categories = array('personalized');

    $found = false;


    foreach ( WC()->cart->get_cart() as $cart_item ){
        if( has_term( $categories, 'product_cat', $cart_item['product_id'] ) ) {
            $found = true;
            break;
        }
    }


    if ( $found ) {
die('check if this true');
        // hide the billing fields
        unset($fields['populating_one']);
        unset($fields['populating_two']);

        // hide the additional information section
        add_filter( 'woocommerce_checkout_custom_field', '__return_false' );
    }
    return $fields;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Dapper:是否可以自定义特定类型的特定字段的类型映射?

来自分类Dev

自定义订单详细信息页面上的Woocommerce自定义字段

来自分类Dev

在Woocommerce查看订单页面上显示自定义字段

来自分类Dev

如果运输方式更改,则在结帐页面上隐藏自定义字段

来自分类Dev

仅当用户登录并加入某些特定组时,才在类别或产品页面上显示自定义阻止

来自分类Dev

Chrome:是否可以创建按钮组合以在页面上运行自定义JavaScript

来自分类Dev

自定义下拉选择器显示或隐藏其他Checkout自定义字段

来自分类Dev

购物车和结帐中显示的管理产品页面自定义字段

来自分类Dev

使Woocommerce(3.8.0)管理员电子邮件中包含我在结帐页面上的自定义字段数据

来自分类Dev

电子邮件,管理员订单和“谢谢”页面上的WooCommerce 4.0自定义结帐和ACF字段值

来自分类Dev

结帐页面WooCommerce中的自定义交付字段

来自分类Dev

Opencart结帐页面上的自定义输入字段:3

来自分类Dev

是否可以添加自定义按钮以选择下拉菜单?

来自分类Dev

条纹结帐-结帐页面上是否可以显示多个图像?

来自分类Dev

在Woocommerce商店和产品类别页面上显示高级自定义字段

来自分类Dev

隐藏自定义结帐字段,使其不显示在WooCommerce我的帐户编辑地址中

来自分类Dev

Woocommerce在结帐页面上从数据库创建并填充自定义下拉列表

来自分类Dev

根据WooCommerce结帐页面上的产品类别应用自定义数量参数

来自分类Dev

Woocommerce在“谢谢”页面上获得自定义选择字段值

来自分类Dev

是否可以在woocommerce购物车和结帐页面中编辑/自定义php代码?

来自分类Dev

在woocommerce结帐页面自定义字段中添加日期

来自分类Dev

在查看订单页面上显示自定义字段

来自分类Dev

自定义结帐页面标签

来自分类Dev

从 Woocommerce 结帐中的自定义产品字段值中填写选择字段选项

来自分类Dev

如果自定义字段等于页面标题,则自动选择父页面

来自分类Dev

Oxidshop - 购物篮页面上的自定义字段

来自分类Dev

WooCommerce 类别页面上的自定义页面标题和描述

来自分类Dev

根据所选付款方式显示隐藏自定义 Woocommerce 结帐字段

来自分类Dev

如何在wordpress自定义页面上获取产品类别的所见即所得自定义字段(ACF)的值

Related 相关文章

  1. 1

    Dapper:是否可以自定义特定类型的特定字段的类型映射?

  2. 2

    自定义订单详细信息页面上的Woocommerce自定义字段

  3. 3

    在Woocommerce查看订单页面上显示自定义字段

  4. 4

    如果运输方式更改,则在结帐页面上隐藏自定义字段

  5. 5

    仅当用户登录并加入某些特定组时,才在类别或产品页面上显示自定义阻止

  6. 6

    Chrome:是否可以创建按钮组合以在页面上运行自定义JavaScript

  7. 7

    自定义下拉选择器显示或隐藏其他Checkout自定义字段

  8. 8

    购物车和结帐中显示的管理产品页面自定义字段

  9. 9

    使Woocommerce(3.8.0)管理员电子邮件中包含我在结帐页面上的自定义字段数据

  10. 10

    电子邮件,管理员订单和“谢谢”页面上的WooCommerce 4.0自定义结帐和ACF字段值

  11. 11

    结帐页面WooCommerce中的自定义交付字段

  12. 12

    Opencart结帐页面上的自定义输入字段:3

  13. 13

    是否可以添加自定义按钮以选择下拉菜单?

  14. 14

    条纹结帐-结帐页面上是否可以显示多个图像?

  15. 15

    在Woocommerce商店和产品类别页面上显示高级自定义字段

  16. 16

    隐藏自定义结帐字段,使其不显示在WooCommerce我的帐户编辑地址中

  17. 17

    Woocommerce在结帐页面上从数据库创建并填充自定义下拉列表

  18. 18

    根据WooCommerce结帐页面上的产品类别应用自定义数量参数

  19. 19

    Woocommerce在“谢谢”页面上获得自定义选择字段值

  20. 20

    是否可以在woocommerce购物车和结帐页面中编辑/自定义php代码?

  21. 21

    在woocommerce结帐页面自定义字段中添加日期

  22. 22

    在查看订单页面上显示自定义字段

  23. 23

    自定义结帐页面标签

  24. 24

    从 Woocommerce 结帐中的自定义产品字段值中填写选择字段选项

  25. 25

    如果自定义字段等于页面标题,则自动选择父页面

  26. 26

    Oxidshop - 购物篮页面上的自定义字段

  27. 27

    WooCommerce 类别页面上的自定义页面标题和描述

  28. 28

    根据所选付款方式显示隐藏自定义 Woocommerce 结帐字段

  29. 29

    如何在wordpress自定义页面上获取产品类别的所见即所得自定义字段(ACF)的值

热门标签

归档