移动“添加到购物车”按钮,然后选择下拉列表中的以下价格

时间:2019-05-24 22:31:14

标签: php wordpress woocommerce

我的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 );
?>

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

enter image description here

2 个答案:

答案 0 :(得分:0)

在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';
}

答案 1 :(得分:0)

我的工作代码:

    <?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 --> 

非常感谢您尝试提供的所有帮助。 :)