Как в WooCommerce убрать префикс product-category и product

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

Но если очень хочется, м с

Для этого в своей теме в файл functions.php вставляем код, представленный нижеph>

/** заменяем - product_cat на shop */
  add_filter( 'request', 'change_requerst_vars_for_product_cat' );
 k'ter', 10, 3 );

  function change_requerst_vars_for_product_cat($vars) {

    global $wpdb;
    if ( ! empty( $vars[ 'pagename' ] ) || ! empty( $vars[ 'category_name' ] ) || ! empty( $vars[ 'name' ] ) || ! empty( $vars[ 'attachment' ] ) ) {
      $slug   = ! empty( $vars[ 'pagename' ] ) ? $vars[ 'pagename' ] : ( ! empty( $vars[ 'name' ] ) ? $vars[ 'name' ] : ( ! empty( $vars[ 'category_name' ] ) ? $vars[ 'category_name' ] : $vars[ 'attachment' ] ) );
      $exists = $wpdb->get_var( $wpdb->prepare( "SELECT t.term_id FROM $wpdb->terms t LEFT JOIN $wpdb->term_taxonomy tt ON tt.term_id = t.term_id WHERE tt.taxonomy = 'product_cat' AND t.slug = %s", array( $slug ) ) );
      if ( $exists ) {
        $old_vars = $vars;
        $vars     = array( 'product_cat' => $slug );
        if ( ! empty( $old_vars[ 'paged' ] ) || ! empty( $old_vars[ 'page' ] ) ) {
          $vars[ 'paged' ] = ! empty( $old_vars[ 'paged' ] ) ? $old_vars[ 'paged' ] : $old_vars[ 'page' ];
        }
        if ( ! empty( $old_vars[ 'orderby' ] ) ) {
          $vars[ 'orderby' ] = $old_vars[ 'orderby' ];
        }
        if ( ! empty( $old_vars[ 'order' ] ) ) {
          $vars[ 'order' ] = $old_vars[ 'order' ];
        }
      }
    }

    return $vars;

  }
  
  function term_link_filter( $url, $term, $taxonomy ) {

    $url = str_replace( "/product-category/", "/shop/", $url );
    return $url;

  }

Далее в админ-панели переходим в раздел Настройки — Постоянные ссылки. Базу категорий магазина оставляем по умолчанию. В постоянных ссылках товарааг/p>

Настройка постоянных ссылок WooCommerce

Сохраняем. Теперь ссылки категорий будут p:graph —>

site.ru/shop/category/

А ссылки товаров будут вида

site.ru/shop/category/product/