Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function eliminar_pedidos_ajax() {
- // Comprobar si el usuario es administrador
- if ( ! current_user_can( 'manage_options' ) ) {
- wp_send_json_error( 'No estás autorizado para hacer esto.' );
- }
- // Comprobar el nonce
- check_ajax_referer( 'eliminar_pedidos_nonce', 'nonce' );
- // Obtener pedidos en lotes de 50
- $orders = get_posts( array(
- 'numberposts' => 50,
- 'post_type' => 'shop_order',
- 'post_status' => array_keys( wc_get_order_statuses() )
- ) );
- if ( empty( $orders ) ) {
- wp_send_json_success( 'Todos los pedidos han sido eliminados.' );
- }
- foreach( $orders as $order ) {
- wp_delete_post( $order->ID, true );
- }
- wp_send_json_error( 'Se eliminaron 50 pedidos. Continuando...' );
- }
- add_action( 'wp_ajax_eliminar_pedidos', 'eliminar_pedidos_ajax' );
- function agregar_eliminar_pedidos_js() {
- // Comprobar si el usuario es administrador y si estamos en el backoffice con el parámetro ?delete
- if ( is_admin() && isset($_GET['delete']) ) {
- ?>
- jQuery(document).ready(function($) {
- var r = confirm("¿Estás seguro de que quieres comenzar a eliminar los pedidos en lotes?");
- if (r == true) {
- function eliminarLotePedidos() {
- $.ajax({
- url: ajaxurl,
- type: 'POST',
- data: {
- action: 'eliminar_pedidos',
- nonce: '<?php echo wp_create_nonce( "eliminar_pedidos_nonce" ); ?>'
- },
- success: function(response) {
- if (response.success) {
- alert(response.data);
- } else {
- eliminarLotePedidos();
- }
- },
- error: function() {
- alert('Error al intentar eliminar los pedidos.');
- }
- });
- }
- eliminarLotePedidos();
- }
- });
- <?php
- }
- }
- add_action( 'admin_footer', 'agregar_eliminar_pedidos_js' );
Advertisement
Add Comment
Please, Sign In to add comment