После создания, редактирования или удаления нового продукта я могу удалить некоторые переходные процессы, но не смог этого сделать, если это массовое действие на панели администратора, такое как массовое редактирование или переход в корзину.
Я использовал ловушку действия 'transition_post_status', и всякий раз, когда происходит переход от старого состояния к новому состоянию или, если это сценарий обновления, выполняется мой временный код удаления.Но это не работает для массового редактирования или массового перемещения в корзину.
function ga_delete_transients( $new_status, $old_status, $post ) {//deletes transients if exists upon create,trash and update
global $post,$wpdb;
if ( $post->post_type !== 'product' ) return;
if($old_status!==$new_status|| $old_status == 'publish' && $new_status =='publish'){
$sql = "SELECT * FROM labtag_wp.wp_labtag_options WHERE `option_name` LIKE ('%\_transient\_ga_loop_products_%')";
$ga_transient_result = $wpdb->get_results($sql);
if(!empty($ga_transient_result)){
$wpdb->query( "DELETE FROM labtag_wp.wp_labtag_options WHERE `option_name` LIKE ('%\_transient\_ga_loop_products_%')" );
}
}
}
add_action( 'transition_post_status', 'ga_delete_transients', 10, 3 );
Я удаляю все переходные процессы при создании, обновлении или перемещении в корзину для нового продукта, но при массовых действиях ничего не происходит.