Remove product-category slug in wordpress woocommerce.
| <?php |
| /* |
| Plugin Name: Remove product-category slug |
| Plugin URI: https://timersys.com/ |
| Description: Check if url slug matches a woocommerce product category and use it instead |
| Version: 0.1 |
| Author: Timersys |
| License: GPLv2 or later |
| */ |
| add_filter('request', function( $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; |
Ref Website: https://timersys.com/remove-product-category-slug-woocommerce/
Comments
Post a Comment