абсолютно так же, как и при продаже через свой сайт.
Новая версия Action Scheduler. Версия 3.0 переносит все данные ActionScheduler из текущей таблицы (custom post type) в пользовательские таблицы. Это приводит к значительному повышению производительности. Тесты показали следующее:
сокращение размера таблицы в БД на 70%
сокращение времени создания нового действия на 68%
сокращение SELECT запросов с отсортированным списком действий на 65%
С этим не соглашусь, ведь, активированный плагин с кучей таблиц в БД, который регулярно проверяет обновления и т.д. не может никак не влиять на произвеодительность.
add_filter( 'bulk_actions-edit-cats', function ( $bulk_array ) {
$bulk_array['reorder_action'] = 'Пересортировать';
return $bulk_array;
});
function bulk_actions_pre_get_posts($wp_query)
{
$wp_query->set('order_by', 'date');
$wp_query->set('order', 'DESC');
}
add_filter( 'handle_bulk_actions-edit-cats', function($redirect, $doaction, $object_ids) {
global $wpdb;
if ('reorder_action' == $doaction) {
if (is_array($object_ids) and count($object_ids)) {
foreach ($object_ids as $_id) {
add_filter('pre_get_posts', 'bulk_actions_pre_get_posts', 99, 1);
$_posts = get_posts(array(
'numberposts' => -1,
'post_type' => 'product',
'suppress_filters' => false,
'tax_query' => array(
array(
'taxonomy' => 'cats',
'field' => 'id',
'terms' => $_id,
'include_children' => false,
)
),
'order_by' => 'date',
'order' => 'DESC',
));
remove_filter( 'pre_get_posts', 'bulk_actions_pre_get_posts' );
if (is_array($_posts) and count($_posts)) {
$i = 0;
foreach ($_posts as $_post) {
$i++;
$result = $wpdb->update(
"{$wpdb->prefix}posts",
array(
'menu_order' => $i
),
array(
'ID' => $_post->ID,
)
);
}
}
}
}
}
}, 10, 3 );
Переписывать на Yii 2 уже что-то и желания нет ) Просто нужны были некоторые новые возможности PHP7 - отсюда и необходимость.
А так да согласен, пора слезать с него на какой-нибудь Laravel к примеру...