Hide Add to Cart button in Woocommerce product variations for a specific attribute value

醉酒当歌 提交于 2019-12-18 09:08:08

问题


In Woocommerce, I'm trying to hide add to cart button for variations with a specific selected value for one of attributes. There are two attributes for each variation (pa_color and pa_size) For example for a variable product, we have these options:

1) Red - XL 2) Red - XXL 3) Blue - M 4) Blue - XL

I want to hide add to cart button for XL so users could not add options having XL to cart (1 and 4 in this example)

P.S: We don't want to disable the variation, so variation image could show up by selecting this option, So deactivating the variation or removing the price and.. isn't the solution for us.


回答1:


Here is the way to make add to cart button inactive on product variations which product attribute "pa_size" with a "XL" value:

add_filter( 'woocommerce_variation_is_purchasable', 'conditional_variation_is_purchasable', 20, 2 );
function conditional_variation_is_purchasable( $purchasable, $product ) {

    ## ---- Your settings ---- ##

    $taxonomy  = 'pa_size';
    $term_name =  'XL';

    ## ---- The active code ---- ##

    $found = false;

    // Loop through all product attributes in the variation
    foreach ( $product->get_variation_attributes() as $variation_attribute => $term_slug ){
        $attribute_taxonomy = str_replace('attribute_', '', $variation_attribute); // The taxonomy
        $term = get_term_by( 'slug', $term_slug, $taxonomy ); // The WP_Term object
        // Searching for attribute 'pa_size' with value 'XL'
        if($attribute_taxonomy == $taxonomy && $term->name == $term_name ){
            $found = true;
            break;
        }
    }

    if( $found )
        $purchasable = false;

    return $purchasable;
}

Code goes in function.php file of your active child theme (or theme). Tested and works.



来源:https://stackoverflow.com/questions/49515176/hide-add-to-cart-button-in-woocommerce-product-variations-for-a-specific-attribu

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!