Как да направим филтър на поръчки в администрацията на WooCommerce по персонализирано поле или Custom Field, който сме създали в нашите order-и (в случая post_type-а е shop_order):
1. Нека първо да направим функцията, която ще промени главната заявка и тя да се стартира само, когато typenow е ‘shop_order’. В случая следим променливата paybyw дали е равна на “on” и ще филтрираме по този критерии.
function so_filter_shop_order3($query) {
global $typenow;
$user = wp_get_current_user();
if ($query->is_main_query() && $typenow === 'shop_order')
{
$query->set( 'meta_key', 'paybyw' );
$query->set( 'meta_value', 'on' );
}
}
2. Следим, дали сесията ни е я има и въз основа на стойността й включваме или изключваме дадена функция.
if ($_GET['order_type'])
{
$_SESSION["order_type"] = (int)$_GET['order_type'];
}elseif ($_GET['order_type'] == '0')
{
$_SESSION["order_type"] = 0;
}
switch ($_SESSION["order_type"])
{
case 0:
break;
case 3:
add_action( 'pre_get_posts', 'so_filter_shop_order3' );
break;
case 4:
add_action( 'pre_get_posts', 'so_filter_shop_order4' );
break;
case 5:
add_action( 'pre_get_posts', 'so_filter_shop_order5' );
break;
}
