CharlieCoplestone
Forum Replies Created
-
Forum: Plugins
In reply to: [WooCommerce] WordPress Taxonomy URL rewrite whilst keeping filtered posts?Hi there, I actually solved this in a pretty interesting way. But likely not the most efficient.
<section class="section--titlealt"> <div class="container"> <h1 class="content__title content__title--center"> <?php echo the_title(); ?> </h1> </div> <?php get_template_part('template-parts/products/products-banner-image'); ?> <div class="container"> <div class="products__wrapper"> <div class="filters__wrapper"> <button class="filters__toggle" data-filter-control="">Filter Products</button> <div class="filters__container" data-filter-target> <div class="filters__closefilter" data-filter-close></div> <?php global $wp; $page_link = get_permalink(); $categories = get_terms( 'product_cat' ); $brands = get_terms( 'pwb-brand' ); $current_url = home_url(add_query_arg(array(), $wp->request)); if (get_query_var('pwb-brand') !== "" && get_query_var('product_cat') == "") { $args = array( 'post_type' => 'product', 'paged' => ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1, 'posts_per_page' => 200, 'post_status' => "publish", 'tax_query' => array( array( 'taxonomy' => 'pwb-brand', 'field' => 'slug', //This is optional, as it defaults to 'term_id' 'terms' => get_query_var('pwb-brand') !== "" ? get_query_var('pwb-brand') : "", 'operator' => 'IN' // Possible values are 'IN', 'NOT IN', 'AND'. ), ) ); } else if (get_query_var('pwb-brand') == "" && get_query_var('product_cat') !== "") { $args = array( 'post_type' => 'product', 'paged' => ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1, 'posts_per_page' => 200, 'product_cat' => get_query_var('product_cat'), 'post_status' => "publish", ); } else if (get_query_var('pwb-brand') !== "" && get_query_var('product_cat') !== "") { $args = array( 'post_type' => 'product', 'paged' => ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1, 'posts_per_page' => 200, 'product_cat' => get_query_var('product_cat'), 'post_status' => "publish", 'tax_query' => array( array( 'taxonomy' => 'pwb-brand', 'field' => 'slug', //This is optional, as it defaults to 'term_id' 'terms' => get_query_var('pwb-brand') !== "" ? get_query_var('pwb-brand') : "", 'operator' => 'IN' // Possible values are 'IN', 'NOT IN', 'AND'. ), ) ); } else { $args = array( 'post_type' => 'product', 'paged' => ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1, 'posts_per_page' => 200, 'post_status' => "publish", ); } if ( isset( $_GET['product_cat'] ) ) { $args['product_cat'] = $_GET['product_cat']; $page_link = add_query_arg( 'product_cat', $_GET['product_cat'], $page_link ); } if ( isset( $_GET['pwb-brand'] ) ) { $args['pwb-brand'] = $_GET['pwb-brand']; $page_link = add_query_arg( 'pwb-brand', $_GET['pwb-brand'], $page_link ); } if ( is_array( $brands ) ) { echo '<div class="filters__brand"> <div class="filters__tab" data-filter-toggle=""> <span class="filters__iden">Brands</span> <span class="filters__close"></span> </div> <div class="filters__itemwrapper">'; foreach ( $brands as $brand ) { if (get_query_var('pwb-brand') == $brand->slug && get_query_var('product_cat') == "") { echo '<div class="filters__itemcontainer"> <label class="filters__label"> <input type="checkbox" class="filters__checkbox" checked> <span class="filters__checkmark"></span> </label> <a class="filters__anchor" href="' . get_site_url() . '/our-products">' . $brand->name . '</a> </div>'; } else if (get_query_var('pwb-brand') == $brand->slug && get_query_var('product_cat') !== "") { echo '<div class="filters__itemcontainer"> <label class="filters__label"> <input type="checkbox" class="filters__checkbox" checked> <span class="filters__checkmark"></span> </label> <a class="filters__anchor" href="' . get_site_url() . "/our-products/product_cat/" . get_query_var('product_cat') . '">' . $brand->name . '</a> </div>'; } else if (get_query_var('product_cat') !== "" && get_query_var('pwb-brand') == $brand->slug) { echo '<div class="filters__itemcontainer"> <label class="filters__label"> <input type="checkbox" class="filters__checkbox" checked> <span class="filters__checkmark"></span> </label> <a class="filters__anchor" href="' . get_site_url() . "/our-products/product_cat/" . get_query_var('product_cat') . '">' . $brand->name . '</a> </div>'; } else if (get_query_var('product_cat') !== "") { echo '<div class="filters__itemcontainer"> <label class="filters__label"> <input type="checkbox" class="filters__checkbox"> <span class="filters__checkmark"></span> </label> <a class="filters__anchor" href="' . get_site_url() . '/our-products/product_cat/' . get_query_var('product_cat') . htmlentities( add_query_arg( 'pwb-brand', $brand->slug, null ) ) . '">' . $brand->name . '</a> </div>'; } else if (get_query_var('product_cat') == "") { echo '<div class="filters__itemcontainer"> <label class="filters__label"> <input type="checkbox" class="filters__checkbox"> <span class="filters__checkmark"></span> </label> <a class="filters__anchor" href="' . get_site_url() . "/our-products/pwb-brand/" . $brand->slug . '">' . $brand->name . '</a> </div>'; } } echo '<li><a href="' . htmlentities( remove_query_arg( 'product_cat', $page_link ) ) . '">None</a></li>'; echo '</div> </div>'; } if ( is_array( $categories ) ) { echo '<div class="filters__cat"> <div class="filters__tab" data-filter-toggle=""> <span class="filters__iden">Type</span> <span class="filters__close"></span> </div> <div class="filters__itemwrapper">'; foreach ( $categories as $category ) { if (get_query_var('product_cat') == $category->slug && get_query_var('pwb-brand') == "") { echo '<div class="filters__itemcontainer"> <label class="filters__label"> <input type="checkbox" class="filters__checkbox" checked> <span class="filters__checkmark"></span> </label> <a class="filters__anchor" href="' . get_site_url() . '/our-products">' . $category->name . '</a> </div>'; } else if (get_query_var('product_cat') == $category->slug && get_query_var('pwb-brand') !== "") { echo '<div class="filters__itemcontainer"> <label class="filters__label"> <input type="checkbox" class="filters__checkbox" checked> <span class="filters__checkmark"></span> </label> <a class="filters__anchor" href="' . get_site_url() . "/our-products/pwb-brand/" . get_query_var('pwb-brand') . '">' . $category->name . '</a> </div>'; } else if (get_query_var('pwb-brand') !== "" && get_query_var('product_cat') == $category->slug) { echo '<div class="filters__itemcontainer"> <label class="filters__label"> <input type="checkbox" class="filters__checkbox"> <span class="filters__checkmark"></span> </label> <a class="filters__anchor" href="' . get_site_url() . "/our-products/pwb-brand/" . get_query_var('pwb-brand') . '">' . $category->name . '</a> </div>'; } else if (get_query_var('pwb-brand') !== "") { echo '<div class="filters__itemcontainer"> <label class="filters__label"> <input type="checkbox" class="filters__checkbox"> <span class="filters__checkmark"></span> </label> <a class="filters__anchor" href="' . get_site_url() . '/our-products/pwb-brand/' . get_query_var('pwb-brand') . htmlentities( add_query_arg( 'product_cat', $category->slug, null ) ) . '">' . $category->name . '</a> </div>'; } else if (get_query_var('pwb-brand') == "") { echo '<div class="filters__itemcontainer"> <label class="filters__label"> <input type="checkbox" class="filters__checkbox"> <span class="filters__checkmark"></span> </label> <a class="filters__anchor" href="' . get_site_url() . "/our-products/product_cat/" . $category->slug . '">' . $category->name . '</a> </div>'; } } echo '<li><a href="' . htmlentities( remove_query_arg( 'product_cat', $page_link ) ) . '">None</a></li>'; echo '</div> </div>'; } ?> </div> </div> <div class="productslist__wrapper" data-products> <?php $products = new WP_Query( $args ); if ( $products->have_posts() ){ while ( $products->have_posts() ) { $products->the_post(); $bullets = get_field('product_list_bullet_points'); $brand = get_term_by( 'slug', $products->query['pwb-brand'], 'pwb-brand'); $url = get_permalink($products->post->ID); ?> <a class="product__container" href="<?php echo $url ?>"> <div class="product__image" style="background-image: url(<?php echo get_field('product_gallery')[0]['sizes']['medium'] ?>)"></div> <div class="product__infowrapper"> <p class="content__desc content__desc--xsml content__desc--grey content__desc--center"> <?php echo $brand->name ?> </p> <p class="content__desc content__desc--bold content__desc--center"> <?php echo $products->post->post_title; ?> </p> <ul class="product__list"> <?php if ($bullets !== false) { foreach ($bullets as $bullet) { ?> <li class="product__listitem"><?php echo $bullet['product_list_bullet_point'] ?></li> <?php } } ?> </ul> <button class="button product__button">View Product</button> </div> </a> <?php } } else { ?> <div class="product__noresWrapper"> <img class="product__nores" src="<?php echo get_template_directory_uri() ?>/compiled/assets/images/no-results.svg"> <h3 class="content__title content__title--center content__title--nores">No results found</h3> <p class="content__desc content__desc--center">Try a different filter</p> </div> <?php } wp_reset_postdata(); ?> </div> </div> </div> </section>
If that is readable at all. I can essentially filter through the products with both Brands/Categories. Links are rendered based on what’s being filtered. Here’s the sites filter for reference:
Forum: Plugins
In reply to: [WooCommerce] Activating WooCommerce Doesn’t Open SetupUpdate:
I tried installing this on a build that doesn’t have ACF Pro fields present and it works. It appears there’s a conflict with ACF. Disabling ACF makes no difference. This could be a database thing. Unfortunately I can’t seem to print debug errors on this page:
/wp-admin/index.php?page=wc-setup
Even with these options set in wp-config.php:
define( ‘WP_DEBUG’, true ); /** debug on */
define( ‘WP_DEBUG_LOG’, true ); /** log enabled */
define( ‘WP_DEBUG_DISPLAY’, true); /** display enabled */- This reply was modified 4 years ago by CharlieCoplestone.