Створення плагіна WordPress «Вибрані записи». Урок 10

22

Від автора: у цьому уроці ми продовжимо створення плагіна WordPress «Вибрані записи». Нагадаю, у попередньому уроці ми реалізували функціонал видалення кожної конкретної статті з Обраного безпосередньо в віджеті Консолі. У цьому уроці ми реалізуємо функціонал видалення відразу всіх статей, фактично, ми дозволимо користувачеві очищати його список Обраного.

Створення плагіна WordPress «Вибрані записи». Урок 10

Автор: Андрій Кудлай

Звуть мене Андрій Кудлай. Родом я з України, живу в Дніпропетровську. Веб-програмування вчився сам. Непогано знаю HTML, CSS, PHP, JavaScript.

Створення плагіна WordPress «Вибрані записи». Урок 10Створення плагіна WordPress «Вибрані записи». Урок 10

Почнемо з додавання відповідної кнопки. Додамо її відразу після списку Обраного. Допишемо в кінці функції wfm_show_dashboard_widget() наступний код:

echo ‘

Очистити списокСтворення плагіна WordPress «Вибрані записи». Урок 10

‘;

Далі у файлі wfm-favorites-admin-scripts.js опишемо необхідний запит для видалення всіх статей:

$(‘#wfm-favorites-del-all’).click(function(e){
e.preventDefault();
if( !confirm(«Підтвердіть видалення») ) return false;
var $this = $(this),
loader = $this.next(),
parent = $this.parent(),
list = parent.prev();
$.ajax({
type: ‘POST’,
url: ajaxurl,
data: {
security: wfmFavorites.nonce,
action: ‘wfm_del_all’
},
beforeSend: function(){
$this.fadeOut(300, function(){
loader.fadeIn();
});
},
success: function(res){
loader.fadeOut(300, function(){
if(res === ‘Список очищений’){
parent.html(res);
list.fadeOut();
}else{
$this.fadeIn();
alert(res);
}
});
},
error: function(){
alert(‘Помилка!’);
}
});
});

Як бачимо, код схожий на код видалення кожної конкретної статті.

У головному файлі плагіна — wfm-favorites.php — додамо новий хук, який прийме запит:

add_action( ‘wp_ajax_wfm_del_all’, ‘wp_ajax_wfm_del_all’ );

Залишилося описати функцію wp_ajax_wfm_del_all(), яка і буде видаляти всі статті:

function wp_ajax_wfm_del_all(){
if( !wp_verify_nonce( $_POST[‘security’], ‘wfm-favorites’ ) ){
wp_die(‘Помилка безпеці!’);
}
$user = wp_get_current_user();
if( delete_metadata( ‘user’, $user->ID, ‘wfm_favorites’ ) ){
wp_die(‘Список очищений’);
}else{
wp_die(‘Помилка видалення’);
}
}

Тут ми вже використовуємо функцію WordPress delete_metadata(), яка дозволяє видалити всі метадані конкретного об’єкта. В нашому випадку це буде користувач (user) із зазначеним ID і ключем метаданих wfm_favorites.

Власне, все. Якщо ми ніде не помилилися, тоді при кліку по кнопці список Обраного користувача буде очищатися.

На цьому поточний урок завершено. Удачі і до нових зустрічей!