Woo-commerce - Цикл добавления в корзину - Как добавить html к кнопке

Шаблон add-to-cart.php Woocommerce содержит этот код:

echo apply_filters( 'woocommerce_loop_add_to_cart_link', // WPCS: XSS ok.
sprintf( '<a href="%s" data-quantity="%s" class="%s" %s>%s</a>',
    esc_url( $product->add_to_cart_url() ),
    esc_attr( isset( $args['quantity'] ) ? $args['quantity'] : 1 ),
    esc_attr( isset( $args['class'] ) ? $args['class'] : 'button' ),
    isset( $args['attributes'] ) ? wc_implode_html_attributes( $args['attributes'] ) : '',
    esc_html( $product->add_to_cart_text() )
),
$product, $args );

Мне нужно добавить эту разметку в тег

<div class="icw"><i class="a3"></i></div>

Я попытался добавить его напрямую, но новый элемент был добавлен после фактической ссылки.

Это то, что я пробовал;

sprintf( '<a href="%s" data-quantity="%s" class="%s" %s><div class="icw"><i class="a3"></i></div>%s</a>',

Может ли кто-нибудь объяснить мне, как мне добавить этот элемент?

Большое спасибо.


person Briany Hearne    schedule 13.03.2020    source источник


Ответы (1)


Прочтите это, прежде чем продолжить

Правильно ли помещать div внутри якоря?


https://github.com/woocommerce/woocommerce/blob/3.8.0/templates/loop/add-to-cart.php

Этот шаблон можно переопределить, скопировав его в yourtheme/woocommerce/loop/add-to-cart.php.


Вроде работает без проблем

echo apply_filters(
    'woocommerce_loop_add_to_cart_link', // WPCS: XSS ok.
    sprintf(
        '<a href="%s" data-quantity="%s" class="%s" %s><i class="a3"></i>%s</a>',
        esc_url( $product->add_to_cart_url() ),
        esc_attr( isset( $args['quantity'] ) ? $args['quantity'] : 1 ),
        esc_attr( isset( $args['class'] ) ? $args['class'] : 'button' ),
        isset( $args['attributes'] ) ? wc_implode_html_attributes( $args['attributes'] ) : '',
        esc_html( $product->add_to_cart_text() )
    ),
    $product,
    $args
);
person 7uc1f3r    schedule 14.03.2020
comment
Благодарю за ваш ответ. Так что да, это работает, по крайней мере, для тега ‹i›, но не для ‹div›. Во всяком случае, я работал над этим, поэтому я отмечу вышеизложенное как правильное. Спасибо еще раз. - person Briany Hearne; 14.03.2020