Woocommerce Продолжить покупку Кнопка Ссылка на страницу с последними продуктами

Ссылка является альтернативным именем для объекта. Контрольная переменная предоставляет псевдоним для ранее определенных переменных. Объявление ссылки состоит из базового типа & amp; ссылочная переменная, приравненная к имени переменной.

0
задан user10078060 13 July 2018 в 21:44
поделиться

1 ответ

Нет встроенной функции для получения просматриваемой страницы последней категории. Но у меня есть некоторые идеи о том, как это можно решить.

Сначала нужно создать настраиваемое действие, проверить, является ли страница страницей категории, и установить идентификатор категории в данные сеанса, если это так. Затем нажмите кнопку

/* Set up session */
add_action( 'init', 'wp_check_for_product_cat_sess');
function wp_check_for_product_cat_sess(){
    if(!session_id()) {
        session_start();
    }
}

/* Set session variable when on Category or Product page */
add_action( 'wp', 'wp_check_for_product_cat');
function wp_check_for_product_cat(){
        global $wp_query;
        if( is_product_category() ){ // This is Category; use my ID
                $_SESSION['wp_last_cat'] = $wp_query->get_queried_object()->term_id;
        }
        if( is_product() ){ // This is Product; use my ID to get my Categories
                $cats = get_the_terms( $wp_query->get_queried_object(), 'product_cat' ) ;
                if( count( $cats ) > 0 ){
                        foreach($cats as $one_cat ){
                                $_SESSION['wp_last_cat'] = $one_cat->term_id;
                        }
                }
        }

        if( is_cart() ){
                // Here we output only on Cart page, as debug tool */
                var_dump( $_SESSION['wp_last_cat'] );
        }
}

. Затем вы замените код действия:

$shop_page_url = "get_permalink( wc_get_page_id( 'shop' ) )";

Должно стать:

if( isset( $_SESSION['wp_last_cat'] ) ){
    $shop_page_url = get_term_link( $_SESSION['wp_last_cat'], 'product_cat' );
} else {
    $shop_page_url = get_permalink( wc_get_page_id( 'shop' ) );
}

Во-вторых, чтобы получить последний элемент, добавленный в корзину, и использовать этот элемент для извлечения его URL-адреса категории.

2
ответ дан Patrick Moore 17 August 2018 в 12:08
поделиться
  • 1
    Привет, Патрик! Спасибо за ваш ответ. Я не думаю, что понимаю, что вы имеете в виду. Плагин, который дает возможность ссылаться на просмотры страниц последней категории, использует следующий код для этого (я думаю). Может быть, есть способ использовать приведенный выше код вместе с ним для работы как для создания кнопки, так и для добавления правильной ссылки? (Я отредактирую свой вопрос с другим кодом) – user10078060 13 July 2018 в 21:39
  • 2
    Я добавил в свой код и заменил код действия. Есть ли что-нибудь еще, что мне нужно сделать до и после? Я не понимаю эту часть. Я пробовал его с этим кодом, и он ведет себя одинаково. Ссылка на страницу магазина. – user10078060 13 July 2018 в 22:30
  • 3
    вот ссылка, которую я использую для тестирования: photojenic.photo/envira/test-jules2 – user10078060 13 July 2018 в 22:34
  • 4
    Отлично!!! Это закончило мой трехмесячный поиск решения – Bryan Lamtoo 16 August 2018 в 19:05
Другие вопросы по тегам:

Похожие вопросы: