Как изменить кнопку «Добавить в корзину Woocommerce» на настраиваемый URL-адрес, который включает SKU продукта и количество # - PullRequest
0 голосов
/ 02 мая 2019

В моем магазине Woocommerce я хочу поменять все кнопки «Добавить в корзину» на внешний URL-адрес, который динамически добавляет SKU и количество продукта.URL-адрес будет примерно таким: https://www.custom -url.com / {SKU} / {QUANTITY}

Это для сайта Woocommerce, на котором больше не будут доступны покупки наих конец.Вместо этого они будут использовать совершенно другого поставщика для покупки на сайте поставщика.Поэтому мне нужна кнопка «Добавить в корзину» для каждого товара, чтобы эта ссылка автоматически добавляла этот товар в корзину на сайте продавца.Эта ссылка уже настроена, чтобы делать то, что ей нужно, на стороне поставщика.Мне просто нужна помощь, чтобы выяснить, как изменить ссылку на стороне Woocommerce.

Скажем, есть продукт с SKU 234275, и клиент хочет 2 из них, поэтому он выбирает 2 из количественного параметра.Мне нужно, чтобы кнопка Добавить в корзину для этого продукта была изменена на: https://www.custom -url.com / 234275/2

Спасибо!

1 Ответ

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

Это код, который работает для вас.

Единственная проблема, с которой вы столкнетесь, если вы измените количество, которое он обрабатывает чаще всего, и запрос AJAX должен обновиться.

add_filter( 'woocommerce_loop_add_to_cart_link', 'woocommerce_loop_add_to_cart_link_updated', 10, 2 );
function woocommerce_loop_add_to_cart_link_updated( $link, $product ){
    $quantity = isset( $quantity ) ? $quantity : 1;
    $link = sprintf( '<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" data-quantity="%s" class="button product_type_%s">%s</a>',
    esc_url( home_url( '/').$product->get_id() . '/' . $quantity ),
    esc_attr( $product->get_id() ),
    esc_attr( $product->get_sku() ),
    esc_attr( isset( $quantity ) ? $quantity : 1 ),
    esc_attr( $product->get_type() ),
    esc_html( $product->add_to_cart_text() )
);
return $link;

}

Кроме того, home_url (), который я разместил, должен быть заменен внешним URL-адресом сайта.

Надеюсь, что это работает для вас по вашему требованию.

...