Build Daschboard for website using Laravel PHP
Html + CSS + Javascript + Bootstrap + Laravel 8 php - complete course 20
4.33 (18 reviews)

107
students
11.5 hours
content
Dec 2023
last update
$19.99
regular price
Why take this course?
أفه، وإليك وصف دوال PHP لحذف الرسائل الزبائن من قسم المشاريع عن طريق لوحة التحكم في WordPress. إليك خطوات التنفيذ:
- التحقق من الصفق (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');
}
- إنشاء واجهة المصدر (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
}
- إضافة ملف 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(',')});
}
});
- إضافة مؤقت (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




Loading charts...
Related Topics
4487020
udemy ID
10/01/2022
course created date
14/01/2022
course indexed date
Bot
course submited by