Spring Security SAML - динамически добавлять параметр запроса

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

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

/* 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-адреса категории.

0
задан Maz 18 January 2019 в 19:39
поделиться