WP поменять url в категории


NewJey
122

Добрый день. Подскажите, как можно реализовать такое:
Стоит дополнение External Importer для импорта товаров для партнерки.
В категории если кликнуть на фото или название товара то переходит в карточку товара, а если кликнуть на кнопку Купить то переходит в карточку товара на сайт партнерки. Мне надо сделать что бы при клике на фото или название пользователь попадал сразу на сайт партнера по реферальной ссылке, а не в карточку товара.

На сколько я понимаю вот код который формирует ссылку на партнерку

do_action( 'woocommerce_before_add_to_cart_form' ); ?>

<form class="cart" action="<?php echo esc_url( $product_url ); ?>" method="get">
    <?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>

    <button type="submit" class="single_add_to_cart_button button alt type-external"><?php echo esc_html( $button_text ); ?></button>

    <?php wc_query_string_form_fields( $product_url ); ?>

    <?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>
</form>

<?php do_action( 'woocommerce_after_add_to_cart_form' ); ?>

Но не пойму как его сформировать что бы вставить в название

<div class="shop-item__title">
            <?php
            remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title' );
            do_action( 'woocommerce_shop_loop_item_title' );
            ?>
            <a href="<?php echo get_permalink() ?>"><?php echo get_the_title() ?></a>
        </div>


SeVlad

NewJey :
Но не пойму как его сформировать что бы вставить в название

Вместо

get_permalink()

использовать

esc_url( $product_url )


NewJey

SeVlad #:

Вместо

использовать

Пробовал, но тогда при нажатии страница просто обновляется и ни куда не переходит(


SeVlad

NewJey #:
Пробовал, но тогда при нажатии страница просто обновляется и ни куда не переходит(

А посмотреть в исходном коде — не? Или неправильно вставляешь или что-то перебивает или..

А судя по данному тобой коду в

$product_url 

передаётся адрес партнёрской ссылки. Именно его и надо подложить под название записи.


NewJey

SeVlad #:

А посмотреть в исходном коде — не? Или неправильно вставляешь или что-то перебивает или..

А судя по данному тобой коду в

передаётся адрес партнёрской ссылки. Именно его и надо подложить под название записи.

Подставляю, но ничего не работает. Не пойму если честно в чем дело(


NewJey

Ссылка формируется таким образом site/out/817 где 817 — это id товара. Может тогда можно напрямую указать site/out/+id товара ? Будет такой способ работать? Если да, то как это правильно написать?


NewJey

Задал таким образом <?php echo ‘https://site.com/out/’, get_the_ID() ?>

Работает, только мне кажется что это не правильно)


SeVlad

NewJey #:
Работает, только мне кажется что это не правильно)

Конечно неправильно. ID поста в ВП — вещь не стабильная и легко может помнятся при манипуляциями с контентом. Более того — он никак не зависит от внешнего товара. Разбирайся с $product_url


NewJey

SeVlad #:

Конечно неправильно. ID поста в ВП — вещь не стабильная и легко может помнятся при манипуляциями с контентом. Более того — он никак не зависит от внешнего товара. Разбирайся с $product_url

Спасибо. Это id товара в вукомерце, думаю стабильно должно быть). Не могу что-то найти как формируется эта переменная(


SeVlad

NewJey #:
Это id товара в вукомерце, думаю стабильно должно быть). Не могу что-то найти как формируется эта переменная(

WC — это всё равно ВП. Стабильно будет ровно до тех пор пока не начнёшь переносить контент через экспорт-импорт. Или удалением-добавлением того же товара.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *