Dudaevskiy
11/15/2019 - 7:43 PM

SweetAler2 с ajaxом для плагина, окно if else

Скрипт который был реализован для одного проекта, в JS отрабатывает скрипт для удаления записей. В окне отображается две кнопки. Так же нужно приметь стили для того что бы не дергался скрол во время отображения попапа:

/* Отменяем скрытие скрола */
body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {
    overflow: visible !important;
}

/* Индивидуальные настройки шрифта для тела попапа */
body div div#swal2-content {
    line-height: 1.4 !important;
    font-size: 1.3em !important;
    font-family: 'Open Sans' !important;
    font-weight:normal !important;
}
jQuery(document).ready(function($){


    $('body div#rcl-office').on("click", "span.publish-close a",function (event) {

// Отменяем повидение при клике по линку по умолчанию
        event.preventDefault();

        var NamePost = $(this).closest('.rcl-table__row-must-sort').find('[data-rcl-ttitle] a').text();
        var ParrentRemov = $(this).closest('.rcl-table__row-must-sort');
        var Split = NamePost.split(' ');

        var AuthorUser = $('.cab_title h2').text();
        var IDUser = $(this).attr('data-this-user-id');


        var IDPost = Split[0].replace('#','');

        console.log('😎 Текущий пользователь - '+AuthorUser);
        console.log('📑😎 ID текущего пользователя - '+IDUser);
        console.log('📑 ID поста для удаления - '+IDPost);
// 		console.log('Клик был');

        var data = {
            action: 'RemovUserPostsFrontend',
            IDUser: IDUser,
            IDPost: IDPost,
            // AuthorUser: AuthorUser
        };

        console.log(data);
        //////////////////////////////
        /// sweetalert2 START
        let timerInterval

        /////////////////////////////
        /// sweetalert2 IF ELSE START
        var aJaxRemovTranInvestPostWPRECALL = Swal.mixin({
            customClass: {
                confirmButton: 'btn btn-success',
                cancelButton: 'btn btn-danger'
            },
            buttonsStyling: false,
            showCloseButton: true,
            scrollbarPadding: false
        })

        aJaxRemovTranInvestPostWPRECALL.fire({
            title: 'Удаление заявки',
            // text: "Серьезно хотите удалить заявку?",
            html: "№ заявки - <br><b>\""+NamePost+"\"</b>",
            icon: 'warning',
            showCancelButton: true,
            confirmButtonText: 'Да, удалить!',
            cancelButtonText: 'Стоп, отмена!',
//               reverseButtons: true
            showCloseButton: true
        }).then((result) => {
            if (result.value) {
                /////////////////////////////
                /// sweetalert2 IF START

                $.ajax({
                    type: "POST", // use $_POST method to submit data
                    url: '/wp-admin/admin-ajax.php?action=RemovUserPostsFrontend', // where to submit the data
                    // contentType: false,
                    // cache:false,
                    data: {
                        IDUser : IDUser, // PHP: $_POST['first_name']
                        IDPost  : IDPost, // PHP: $_POST['last_name']
                    },

                    success:function(data) {
                        // Удаляем блок
                        console.log( data );
                        ParrentRemov.remove();
                        //////////////////////////////
                        /// sweetalert2 START
                        Swal.fire({
                            position: 'center',
                            type: 'success',
                            title: 'Готово!',
                            text:'Заявка успешно удалена',
                            showConfirmButton: false,
                            scrollbarPadding: false,
                            timer: 2000
                        });
                        /// sweetalert2 END
                        //////////////////////////////
                    },

                    error: function(errorThrown){
                        //////////////////////////////
                        /// sweetalert2 START
                        Swal.fire({
                            position: 'center',
                            type: 'error',
                            title: 'Ошибка',
                            text:'Что-то пошло не так.',
                            showConfirmButton: false,
                            scrollbarPadding: false,
                            timer: 3000
                        });
                        /// sweetalert2 END
                        //////////////////////////////
                    }
                })
                /////////////////////////////
                /// sweetalert2 IF END

            } else if (
                /* Read more about handling dismissals below */
                result.dismiss === Swal.DismissReason.cancel
            ) {
                aJaxRemovTranInvestPostWPRECALL.fire(
                    'Отмена',
                    'Ваша заявка не удалена',
                    'error'
                )
            }
        });

    });
    });
<?php
/** =====================================================================================
 * aJax
 */


add_action( 'wp_ajax_RemovUserPostsFrontend', 'RemovUserPostsFrontend_action' );
//add_action( 'wp_ajax_nopriv_RemovUserPostsFrontend', 'RemovUserPostsFrontend_action' );

/**
 * Ajax Callback
 */
function RemovUserPostsFrontend_action(){
//    $AuthorUser = isset( $_POST['AuthorUser'] ) ? $_POST['AuthorUser'] : 'N/A';
    $IDUser = isset( $_POST['IDUser'] ) ? $_POST['IDUser'] : 'N/A';
//    $IDUser = (int)$IDUser;
    $IDPost = isset( $_POST['IDPost'] ) ? $_POST['IDPost'] : 'N/A';


    // Для получение массива от PHP
//    $post_data_ajax = [
//        "IDUser" => $_POST['IDUser'],
//        "IDPost" => $_POST['IDPost']
//    ];
    // Для получение массива от PHP
//    echo json_encode($post_data_ajax);


    $Post_data = get_postdata($IDPost);
    if ($Post_data['Author_ID'] == $IDUser) {
//        // И удаляем пост
        wp_delete_post($IDPost, false);
    }
//    echo '🔴😎😎😎 Ajax сработал | Author_ID - '.$Post_data['Author_ID'].'| $IDUser - '. $IDUser.'| $IDPost - '. $IDPost;
    echo 'Запись удалена';



    wp_die(); // required. to end AJAX request.
}
/** 
 * aJax
===================================================================================== */