Переместите кнопку «Добавить в корзину» и выпадающий вариант ниже цены - PullRequest
1 голос
/ 25 мая 2019

У меня есть одна проблема с Woo Store, которая не может решить сама.Я хочу переместить добавить в корзину кнопку и вариант выбора только ниже продукт цена.Я перепробовал почти все коды, найденные в 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 для отдельной страницы продукта, но не вносил изменений ни в один из тех кодов / хуков, которые я там нашел.Любая помощь здесь?Чтобы показать, куда хотите добавить add в корзину.

EDIT: Я нашел этот код для кнопки печати, где мне нужно:

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 голосов
/ 25 мая 2019

Мой рабочий код:

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

Большое спасибо за все, что пытались помочь. :)

0 голосов
/ 25 мая 2019

Проверьте это действие в ядре 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';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...