WooCommerce 添加 <custom> 产品到购物车

WooCommerce Add <custom> products to cart

我正在尝试创建一个片段以在特定类别的所有产品单页上显示第二个“添加到购物车”按钮。此按钮应将 6 个当前产品添加到购物车。

更新: 借助来自@kmclaws 和此处 的信息,我能够让它发挥作用。现在唯一的问题是,为了仅显示在“biere”产品类别上的 IF 不起作用。

问题: 有些产品仅来自“biere”或“cider”,有些产品来自“biere”和“cider”,还有一些其他类别。意思是,有时不止一个类别,有时只定义一个类别。如果“biere”OR/AND“cider”是产品类别之一,我们希望始终显示它。

如果“biere”或“cider”是显示所有内容的类别,我该如何编码?

这是我当前的代码:

add_action( 'woocommerce_after_add_to_cart_button', 'additional_simple_add_to_cart', 20 );
function additional_simple_add_to_cart() {
    
    global $product;

    // Only for simple product type
    if( ! $product->is_type('simple') ) return;
                
        // Only for products from category "biere" AND/OR "Cider"
        if ( has_term( 'biere', 'cider', 'product_cat' ) ) {
    
            // Output Info text for "biere" or "cider" products
            echo '<p class="rtrn">Infotext block</p>';
                
            // Only display when more than 6 are available
            if( $product->get_stock_quantity() >= 6 ) {

                $href = '?add-to-cart=' . esc_attr( $product->get_id() ) . '&quantity=6';
                $class = 'ingle_add_to_cart_button-12 button alt';
                $style = 'display: inline-block; margin-top: 12px;';
                $button_text = __( "6 Pack bestellen", "woocommerce" );

                // Output add to cart button
                echo '<br><a rel="no-follow" href="'.$href.'" class="'.$class.'" style="'.$style.'">'.$button_text.'</a>';
            }
        }
}

谢谢

看来您没有正确抓取 PHP 中当前产品的 ID。试试这个:

add_action( 'woocommerce_after_add_to_cart_quantity', 'add_quantity_6' );

function add_quantity_6() {
    global $product;
    $id = $product->get_id();
    if ( is_product_category( 'jeans' ) ) {
        echo '<a href="https://example.com/?add-to-cart' . $id . '&quantity=6" class="button">Add 6 to Cart</a>';
    }    
}

您需要将 example.com 替换为您网站的静态或相对路径

这是我的解决方案:

add_action( 'woocommerce_after_add_to_cart_button', 'additional_simple_add_to_cart', 20 );
function additional_simple_add_to_cart() {
    
    global $product;

    // Only for simple product type
    if( ! $product->is_type('simple') ) return;
                
        // Only for products from category "biere" AND/OR "Cider"
        if ( has_term( array('biere', 'cider'), 'product_cat', $product->get_id() ) ) {

    
            // Output Info text for "biere" or "cider" products
            echo '<p class="rtrn">Infotext block</p>';
                
            // Only display when more than 6 are available
            if( $product->get_stock_quantity() >= 6 ) {

                $href = '?add-to-cart=' . esc_attr( $product->get_id() ) . '&quantity=6';
                $class = 'ingle_add_to_cart_button-12 button alt';
                $style = 'display: inline-block; margin-top: 12px;';
                $button_text = __( "6 Pack bestellen", "woocommerce" );

                // Output add to cart button
                echo '<br><a rel="no-follow" href="'.$href.'" class="'.$class.'" style="'.$style.'">'.$button_text.'</a>';
            }
        }
}