Filtrare produse
-
Salut! Sunt nou pe WordPress si incerc sa fac o functie.
Folosesc WordPress cu pluginul Woocommerce
In baza de date in tabelul wp_postmeta pentru majoritatea produselor am in meta_key am multiple_external cu meta_value in felul acesta:
a:3:{i:0;a:3:{i:0;s:17:"https://site1.com";i:1;s:6:"Site 1";i:2;s:7:"200 LEI";}i:1;a:3:{i:0;s:17:"https://site2.com";i:1;s:6:"Site 2";i:2;s:7:"300 LEI";}i:2;a:3:{i:0;s:17:"https://site3.com";i:1;s:6:"Site 3";i:2;s:7:"400 LEI";}}
Cum as putea obtine in lista produselor in partea stanga, fiecare nume de site din toate produsele de pe site, fara a dubla numele unui site ?
Vreau sa fac un filtru de produse pentru fiecare nume de site
site.ro/produse?shops=Site 1,Site 2
add_filter( 'woocommerce_product_query_meta_query', 'filter_woocommerce_product_query_meta_query', 10, 2 ); function filter_woocommerce_product_query_meta_query( array $meta_query ): array { if ( is_shop() || is_product_category() ) { if ($_GET['shops']) { $shops = explode(",", $_GET["shops"]); $meta_query = array( 'relation' => 'OR', array( 'key' => '_multiple_external_', 'value' => 'Site 1', 'compare' => 'LIKE' ), array( 'key' => '_multiple_external_', 'value' => 'Site 2', 'compare' => 'LIKE' ) ); } } return $meta_query; } } } return $meta_query; }
Cum pot face un foreach pentru $shops pentru a selecta doar produsele care au in i[1] multiple_external numele site-urilor?
- Subiectul „Filtrare produse” este închis pentru răspunsuri noi.