我想通过产品的可用变体过滤产品。 案例(仅示例):一位客户希望从“ Nike”找到尺寸为“ 42”的鞋子。因此,他可以使用woocommerce的“按产品属性过滤”选项进行搜索。我已经有了逻辑,但是加载速度只是很慢。
我正在寻找一个更好的woocommerce钩子,并依靠一些技巧来提高加载速度。
add_action('woocommerce_before_shop_loop_item_title','wk_out_of_stock_variations_CUP_loop');
function wk_out_of_stock_variations_CUP_loop()
{
global $product;
global $wpdb;
$id = $product->get_id();
$filter = array();
$product_test = $product->get_available_variations();
foreach( $_GET as $key => $value ) {
$expl_get = explode( '_', $key );
if( $expl_get[0] == 'filter' ) {
$filter[$expl_get[1]] = $value;
}
}
foreach ( $filter as $key => $value ) {
foreach( $product_test as $prd_var ) {
if( $prd_var["attributes"]["attribute_pa_$key"] == $value ) {
break;
} else {
echo "<style>.post-$id{display: none !important}</style>";
}
}
}
}
在$filter
中设置的过滤条件(“大小”,“颜色” ...)。在网址中显示为$_GET
参数,例如/?filter_1=2&filter_2=5