Индивидуальные варианты продуктов WooCommerce добавить кнопки корзины - PullRequest
0 голосов
/ 22 февраля 2019

Я настроил Страница отдельного продукта WoCommerce и добавил кнопку корзины, используя просто эту строку

echo woocommerce_simple_add_to_cart();

, но теперь мне нужны две добавленные две кнопки корзины для двух типов вариантов.Все мои атрибуты и дети одинаковы.type_of_audio и child - это mac & windows.

Все, что я хочу, - создать две пользовательских ссылки для добавления в корзину.но я не могу настроить идентификатор продукта динамически.дно это код.(Переменный идентификатор продукта не получается должным образом, поэтому он не добавляет продукт в корзину)

<?php if( $product->is_type( 'simple' ) ){                             
   echo woocommerce_simple_add_to_cart();                                
}                          
elseif( $product->is_type( 'variable' ) ){
   echo ('<a href="/?add-to-cart=$variation_id&attribute_pa_type_of_audio=mac">MAC BUTTON</a>');
   echo ('<a href="/?add-to-cart=$variation_id&attribute_pa_type_of_audio=windows">WINDOWS BUTTON</a>');
                                }
?>

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Попробуйте выполнить следующие действия, которые будут отображать кнопку добавления в корзину для каждого варианта с правильной меткой кнопки:

<?php 
if ( $product->is_type( 'simple' ) ){
   echo woocommerce_simple_add_to_cart();
}
elseif ( $product->is_type( 'variable' ) ){
    // Loop through available variation data
    foreach ( $product->get_available_variations() as $variation_data ) {
        $url = '?add-to-cart='.$variation_data['variation_id']; // The dynamic variation ID (URL)

        // Loop through variation product attributes data
        foreach ( $variation_data['attributes'] as $attr_key => $term_slug ) {
            // The text button
            if ( $attr_key === 'attribute_pa_type_of_audio' && $term_slug === 'mac' ) 
            { // MAC
                $button_text = __("MAC BUTTON", "woocommerce");
            } elseif  ( $attr_key === 'attribute_pa_type_of_audio' && $term_slug === 'windows' ) 
            { // WINDOWS
                $button_text = __("WINDOWS BUTTON", "woocommerce");
            } else 
            { // OTHER (IF NEEDED)
                $button_text = __("Add to cart", "woocommerce"); 
            }

            $url .= '&'.$attr_key.'='.$term_slug; // Adding the product attribute name with the term value (to Url)
        }
        // Displaying the custom variations add to cart buttons
        if( isset($button_text))
            echo '<a href="'.$url.'" class="button alt">'.$button_text.'</a> ';
    }
}
?>

Протестировано и работает.

0 голосов
/ 22 февраля 2019
 if ($product->is_type('simple')) {
    echo woocommerce_simple_add_to_cart();
} elseif ($product->is_type('variable')) {


    $children_ids = $product->get_children();

    foreach ($children_ids as $value) {
        $single_variation = new WC_Product_Variation($value);
        echo '<a href="/?add-to-cart=$variation_id=' . $value . '&attribute_pa_type_of_audio=mac">MAC BUTTON</a>';
    }
}
...