Я не очень хорошо понимаю, цель $soldty = get_post_meta($product->id, 'sales_count', true);
, по умолчанию 'total_sales'
для продукта делает уже расчет всех проданных товаров (количество проданный деталь добавляется каждый время до счета).
В любом случае, если вам действительно нужен этот расчет, лучшим вариантом будет сделать функцию, которая будет создавать/обновлять новое пользовательское поле, для каждого продукта, с тем расчетом:
add_action('wp_loaded', 'products_update_total_sales_calculation');
function products_update_total_sales_calculation(){
$sales = array();
$all_products = get_posts(array(
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => -1,
));
foreach($all_products as $item) {
$units_sold = get_post_meta($item->ID, 'total_sales', true);
$soldty = get_post_meta($item->ID, 'sales_count', true);
if(empty($soldty)) $soldty = 0;
$result = $units_sold + $soldty;
update_post_meta($item->ID, 'global_sales_count', $result);
}
}
Эта функция делает расчет продаж продукта и создает/обновляет настраиваемое поле 'global_sales_count'
с расчетным значением в нем.
Теперь вы можете настроить ваш запрос 'orderby'
аргумент на основе этого нового пользовательского поля:
$args = apply_filters('woocommerce_related_products_args', array(
'post_type' => 'product',
'ignore_sticky_posts' => 1,
'no_found_rows' => 1,
'posts_per_page' => 4,
'meta_key' => 'global_sales_count', // <== <== the new custom field
'orderby' => 'meta_value_num',
'order' => 'DESC',
'post__in' => $related
));
$products = new WP_Query($args);
Если вам не нужен ваш расчет, значение 'meta_key'
будет изменено на существующий 'total_sales'
meta_key
, таким образом:
$args = apply_filters('woocommerce_related_products_args', array(
'post_type' => 'product',
'ignore_sticky_posts' => 1,
'no_found_rows' => 1,
'posts_per_page' => 4,
'meta_key' => 'total_sales', // <== <== the existing meta_key
'orderby' => 'meta_value_num',
'order' => 'DESC',
'post__in' => $related
));
$products = new WP_Query($args);
Извините, я добавил дополнительную информацию. Он просто нуждается в порядке суммой двух настраиваемых полей, остальные параметры являются нормальными. –
total_sales value increment by wocommerce, когда клиенты размещают заказы, которые также имеют пользовательское поле, sales_count настраиваемое поле, добавленное мной, которое также удерживайте некоторое целое число, использование sales_count - это использование для отображения на страницах продукта sales_count + total_sales.поэтому у продукта нет фактических продаж раньше, продукт показывает некоторые продажи с использованием поля sales_count –
$ units_sold = get_post_meta ($ product-> id, 'total_sales', true); $ soldty = get_post_meta ($ product-> id, 'sales_count', true); echo 'Sales:'. ($ Units_sold + $ soldty); –