【问题标题】:Move "Add to Cart" button and variation dropdown bellow price移动“添加到购物车”按钮和价格变化下拉列表
【发布时间】:2019-05-25 19:33:29
【问题描述】:

我的 Woo 商店有一个问题,无法自行解决。我想在product 价格下方移动添加到购物车按钮和变体选择器。我尝试了几乎所有在 stackoverflow 中发现的代码(新的和最旧的),但没有做任何改变。插入此代码时:

add_action( 'woocommerce_before_variations_form', 
'second_button_single_variation', 30 );
function second_button_single_variation() {
global $product;
echo '<br>
<button type="submit" class="single_add_to_cart_button button alt">'. 
esc_html( $product->single_add_to_cart_text() ).'</button>';}

它添加了“添加到购物车”按钮,但不在我想要的位置。我关注BBlomer manual 的单个产品页面,但不要更改我在那里找到的任何代码/钩子。这里有什么帮助吗?仅显示要添加到购物车的位置。

编辑:我发现这段代码在我需要的地方打印按钮:

echo apply_filters( 'woocommerce_loop_add_to_cart_link',
sprintf( '<a href="%s" rel="nofollow" data-product_id="%s" data- 
product_sku="%s" class="button %s product_type_%s">%s</a>',
    esc_url( $product->add_to_cart_url() ),
    esc_attr( $product->id ),
    esc_attr( $product->get_sku() ),
    $product->is_purchasable() ? 'add_to_cart_button' : '',
    esc_attr( $product->product_type ),
    esc_html( $product->add_to_cart_text() )
),
$product );
?>

但打印我的变体选项按钮,但没有下拉选择器。

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    在 WooCommerce 核心中检查此操作挂钩

    add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
    

    要满足您的要求,您需要删除此钩子并在您的 functions.php 中再次添加钩子。

    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
    add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price_callback', 10 );
    function woocommerce_template_single_price_callback(){
        /*Play with Woocommerce Data  Here*/
        echo 'PRice';
        echo 'Button';
    }
    

    【讨论】:

    • 在 content-single-product.php 模板中找到了钩子,并对其进行了注释,然后将您的函数从主题添加到 functions.php 中,但没有任何更改。
    • 我也在文件 wc-template-hooks.php 中找到了该函数并发表了评论..但仍然没有变化。
    【解决方案2】:

    我的工作代码:

        <?php
    /**
     * Custom Loop Add to Cart.
     *
     * Template with quantity and ajax.
     */
    if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly.
    global $product;
    ?>
    
    <?php if ( ! $product->is_in_stock() ) : ?>
    
        <a href="<?php echo apply_filters( 'out_of_stock_add_to_cart_url', get_permalink( $product->id ) ); ?>" class="button"><?php echo apply_filters( 'out_of_stock_add_to_cart_text', __( 'Read More', 'woocommerce' ) ); ?></a>
    
    <?php else : ?>
    
        <?php
            $link = array(
                'url'   => '',
                'label' => '',
                'class' => ''
            );
            switch ( $product->product_type ) {
            case "variable" :
            $link = apply_filters( 'variable_add_to_cart_url', get_permalink( $product->id ) );
            $label = woocommerce_variable_add_to_cart();
            break;
                case "grouped" :
                    $link['url']    = apply_filters( 'grouped_add_to_cart_url', get_permalink( $product->id ) );
                    $link['label']  = apply_filters( 'grouped_add_to_cart_text', __( 'View options', 'woocommerce' ) );
                break;
                case "external" :
                    $link['url']    = apply_filters( 'external_add_to_cart_url', get_permalink( $product->id ) );
                    $link['label']  = apply_filters( 'external_add_to_cart_text', __( 'Read More', 'woocommerce' ) );
                break;
                default :
                    if ( $product->is_purchasable() ) {
                        $link['url']    = apply_filters( 'add_to_cart_url', esc_url( $product->add_to_cart_url() ) );
                        $link['label']  = apply_filters( 'add_to_cart_text', __( 'Add to cart', 'woocommerce' ) );
                        $link['class']  = apply_filters( 'add_to_cart_class', 'add_to_cart_button' );
                    } else {
                        $link['url']    = apply_filters( 'not_purchasable_url', get_permalink( $product->id ) );
                        $link['label']  = apply_filters( 'not_purchasable_text', __( 'Read More', 'woocommerce' ) );
                    }
                break;
            }
    
        ?>
    
    <?php endif; ?>
    <!--end code --> 
    

    非常感谢所有试图提供帮助的人。 :)

    【讨论】:

      猜你喜欢
      • 2019-06-06
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      相关资源
      最近更新 更多