Build Daschboard for website using Laravel PHP

Html + CSS + Javascript + Bootstrap + Laravel 8 php - complete course 20
4.33 (18 reviews)
Udemy
platform
العربية
language
Web Development
category
Build Daschboard for website using Laravel PHP
107
students
11.5 hours
content
Dec 2023
last update
$19.99
regular price

Why take this course?

أفه، وإليك وصف دوال PHP لحذف الرسائل الزبائن من قسم المشاريع عن طريق لوحة التحكم في WordPress. إليك خطوات التنفيذ:

  1. التحقق من الصفق (Hook): أولاً، جاءز على أن owpJasper هو القسم الذي ترغب في إضافة هذه ال功اة. وفقًا لكيفية عمل WordPress، نستخدم admin_init أو wp_loaded لضم الحزن إذا كان قسم owpJasper موجود.
add_action('admin_init', 'delete_customer_messages');
function delete_customer_messages() {
    // تأكد من أن الطلب قد حصل على قسم owpJasper
    if (!did_action('manage_owpjasper_projects_page_setup')) {
        return;
    }
    
    // إضافة بطانة (Button) في وجه الصورة (Image) ذات معنى "حذف الرسائل الزبائن"
    add_meta_box('customer_messages_delete', 'حذف الرسائل الزبائن', 'customer_messages_delete_html', 'manage_owpjasper_projects', 'side', 'high');
}
  1. إنشاء واجهة المصدر (HTML): تسبق إلى ملف القسم حيث نطبق البطانة، وأضف الكود HTML و PHP لإنشاء واجهة المصدر.
function customer_messages_delete_html($post) {
    // متغير لخزينة قيمة الحد الأعلى للرسالة الزبائن
    $customer_message_max_id = get_option('customer_message_max_id');
    
    // متغير لجمع الرسائل الزبائن
    $customer_messages = array();
    
    // الحصول على جميع رسائل الزبائن
    $args = array(
        'post_type' => 'jester-contact-form',
        'posts_per_page' => -1,
        'post_status'    => 'publish',
        'meta_query' => array(
            array(
                'key'       => 'message_to_owpjasper',
                'value'     => 'customer',
                'compare'   => '=',
            ),
        ),
    );
    
    $customer_messages_query = new WP_Query($args);
    if ($customer_messages_query->have_posts()) {
        while ($customer_messages_query->have_posts()) {
            $customer_messages_query->the_post();
            $customer_messages[] = get_the_ID();
        }
    }
    wp_reset_postdata();
    
    // إضراب الأزرار (Buttons) لحذف الرسائل بنوع "حذف كل الرسائل" و "حذف الرسائل الزبائن المحددة"
    ?>
    <style>
        /* أيضًا، يمكنك إضافة خطوط المجلة هنا لتعطي نظرة جذابة للبطانة */
        .button-delete-all {
            margin: 10px 0;
        }
    </style>
    <button class="button-delete-all" onclick="bulkDeleteCustomerMessages(<?php echo esc_js($customer_message_max_id); ?>)">حذف كل الرسائل</button>
    <div id="customer-messages-list"></div>
    <script type="text/javascript">
        function bulkDeleteCustomerMessages(max_id) {
            var checked = new Array();
            $("input[name='id']:checked").each(function() {
                checked.push($(this).val());
            });
            if (checked.length > 0) {
                var ids = checked.join(",");
                var data = {
                    'action': 'bulk_delete_customer_messages',
                    'ids': ids,
                    'max_id': max_id,
                    '_wpnonce': '<?php echo wp_create_nonce('wp_rest'); ?>'
                };
                $.post(ajaxurl, data, function (response) {
                    // Handle the response here
                });
            } else {
                alert('الرجاء تحديد الرسائل الذي هو زبائن.');
            }
        }
    </script>
    <?php
}
  1. إضافة ملف JavaScript: أضف ملف JavaScript لتعليم أنه يجب على المستخدم أو يتطلب إعادة تحميل الصفحة بعد حذف الرسالة.
// ملف JavaScript
document.addEventListener('DOMContentLoaded', function() {
    // الحصول على القوام التي أطلقت هذا الجاvaScript
    var messagesToDelete = JSON.parse(owpJasper_Projects.messagesToDelete);
    
    if (messagesToDelete && messagesToDelete.length) {
        wp.post('<?php echo esc_js(wp_create_nonce('wp_rest')); ?>', 'wp_rest', function (response) {
            if (response) {
                location.reload(); // إعادة تحميل الصفحة
            }
        }).send('bulkDeleteCustomerMessages', {'ids': messagesToDelete.join(',')});
    }
});
  1. إضافة مؤقت (AJAX) لإدارة الحذف: في ملف PHP الذي تنظم الوصفة wp_ajax_bulk_delete_customer_messages، سأكت عند قبل الرسائل الزبائن.
add_action('wp_ajax_bulk_delete_customer_messages', 'bulkDeleteCustomerMessages');
function bulkDeleteCustomerMessages() {
    $nonce = $_POST['_wpnonce'];
    if (!wp_verify_nonce($nonce, 'wp_rest')) {
        return;
    }
    
    // أخذ الأيدي المحددة من الطلس (Post)
    $post_ids = array_map('intval', explode(',', $_POST['ids']));
    
    // الحصول على الرسائل بالأيدي
    $posts_to_delete = get_posts(array(
        'post_type' => 'jester-contact-form',
        'posts_per_page' => -1,
        'post_status'    => 'publish',
        'include' => $post_ids,
        'fields' => 'ids',
    ));
    
    // حذف الرسائل
    foreach ($posts_to_delete as $post_id) {
        wp_delete_post($post_id, true);
    }
    
    // إرجاع الرد الناجح
    wp_send_json_success();
}

لتأكد من أن كود الحذف يعمل بشكل صحيح، قم بتجربته في موضوع اختياري (custom post type) قبل الإستخدام في الوجهة الأساسية. وبشكل مثالي، استخدم 'post_type' => 'my_custom_post_type' في مؤقت bulkDeleteCustomerMessages قبل الإعادة إلى الحالة الأصلية.

لتشغيل الكود، تضع الجزء الخارط للbutton-delete-all في الوجهة الأساسية التي تستخدمها، وتضع ملف JavaScript الذي يحمل owpJasper_Projects.messagesToDelete بشكل صحيح.

يرجى ملاحظة أن سيحتاج إلى تعديل الكود بناءً على الهيكل الخاص بك والطريقة التي تحمل owpJasper_Projects.messagesToDelete في متغيرات JavaScript خارج الظروف (outside React).

Course Gallery

Build Daschboard for website using Laravel PHP – Screenshot 1
Screenshot 1Build Daschboard for website using Laravel PHP
Build Daschboard for website using Laravel PHP – Screenshot 2
Screenshot 2Build Daschboard for website using Laravel PHP
Build Daschboard for website using Laravel PHP – Screenshot 3
Screenshot 3Build Daschboard for website using Laravel PHP
Build Daschboard for website using Laravel PHP – Screenshot 4
Screenshot 4Build Daschboard for website using Laravel PHP

Loading charts...

4487020
udemy ID
10/01/2022
course created date
14/01/2022
course indexed date
Bot
course submited by