Задать вопрос
ko3a4ok
@ko3a4ok
IT

Как сделать прямую ссылку на товар в woocommerce?

Изменение постоянных ссылок WooCommerce (удалить shop)
задача убрать /shop/ полностью, чтобы ссылка на любой товар была www.ляля.com/product name/

посоветуйте кто что знает.
может есть какой плагин ?
правки options-permalink.php или function.php ?

сейчас в настройках стоит /shop/%product_cat%
если убрать /shop/ то автоматом кидает /tovar/%product_cat%
вообщем нужно ковырять код... но где копать ?

ах да поиск дал вот такой код:
remove_filter( 'post_type_link', 'woocommerce_product_cat_filter_post_link', 10, 2 ); // для версии woocommerce ниже 2.0 
remove_filter( 'post_type_link', 'woocommerce_product_post_type_link', 10, 2 ); // для версии woocommerce >= 2
add_filter( 'post_type_link', 'woocommerce_subcategory_permalink', 10, 2 );
function woocommerce_subcategory_permalink( $permalink, $post ) {

    // Прекращаем работу, если запись не является товаром
    if ( $post->post_type !== 'product' )
    	return $permalink;

    // Прекращаем работу, если тег перезаписи местоположения не находится в генерируемой ссылке
    if ( false === strpos( $permalink, '%product_cat%' ) )
    	return $permalink;

    // Получаем пользовательскую таксономию, используемую этой записью
    $terms = get_the_terms( $post->ID, 'product_cat' );

    if ( empty( $terms ) ) {
        $permalink = str_replace( '%product_cat%', _x('product', 'slug', 'woocommerce'), $permalink );
    } else {
        $first_term = array_shift( $terms );
        
        // Получаем иерархическую product_category
        $parents = woo_get_term_parents( $first_term->term_id, 'product_cat' );

        $permalink = str_replace( '%product_cat%/', $parents, $permalink );
    }

    return $permalink;
}

if ( ! function_exists( 'woo_get_term_parents' ) ) {
	function woo_get_term_parents( $id, $taxonomy ) {
		$chain = '';
		$parent = &get_term( $id, $taxonomy );
		if ( is_wp_error( $parent ) )
	    	return $parent;
	
	    $name = $parent->slug;
	
		if ( $parent->parent && ( $parent->parent != $parent->term_id )  ) {
		    $chain .= woo_get_term_parents( $parent->parent, $taxonomy);
		}
	
	    $chain .= $name."/";
	    return $chain;
	} // End woo_get_term_parents()
}

вот только он делает вот из
/product/product_category/product_name
это:
/product/catgory/sub_category/product_category/product_name

может что-то подобное есть и по моему вопросу.
  • Вопрос задан
  • 3731 просмотр
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@ssumatokhin
Поиши шорткоды к woocomerce. Прости что не могу ссылку дать, не помню уже где сам находил (. Нашел, примерно так [recent_products per_page="12 " columns="6"]
Ответ написан
Комментировать
@ryuuddo
а у меня обратный вопрос - как сделать что бы товар крепился ко всем указанным категориям и подкатегориям?
вот что я имею ввиду:

/shop/category_name/subcategory_name/subsubcategory_name/product_name
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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