Я создал сайт, инициализирующий CMB2 для пользовательских типов записей, полей, метабоксов и т. Д. Я создал поле пользовательских флажков, которое действует как флаг. Проверено или не проверено. Этот флажок находится в метабоксе нестандартного типа записи и отображается на бэкэнде.
Что нам нужно сделать, так это иметь кнопку на передней панели, чтобы пользователь мог щелкнуть. Когда кнопка нажата, значение флажка должно измениться (update_post_meta для этого флажка).
Я полагаю, что это должно быть сделано с AJAX, но не получил никакого предыдущего опыта с ним.
Это где код должен идти. Он проверяет, если флажок установлен, если он установлен, то он просто выводит. Если он не отмечен, он должен вывести кнопку, которая будет переключать статус флажка.
<?php $adopted_check = get_post_meta( get_the_ID(), INVENTOR_LISTING_PREFIX . 'adopted-check', true ); ?>
<?php if ( $adopted_check ) { ?>
<div class="adopted"><i class="fa fa-thumbs-up" style="font-size: 20px;"></i><span><?php echo esc_attr__( 'Adopted', 'inventor' ); ?></span></div>
<?php } else { ?>
<button type="submit">Mark as Adopted</button>
<?php } ?>
Может кто-нибудь помочь с этим?
Вы можете создать вызов ajax, как это в jQuery
$.ajax({
type: "POST",
url: ajaxurl,
async:true,
data: {
action: 'callback_action',
security: $('#security').val(),
custom_info:custom_info
},
cache: false,
});
Теперь WordPress автоматически перехватит действие с помощью действия wp_ajax_, например:
add_action('wp_ajax_callback_action','function_name');
function function_name(){
$security = $_POST['security'];
$custom_info = $_POST['custom_info'];
// your code goes here to update the meta
die()// It's necessary to add die at the end of an ajax call or it will return 0.
}
Готово.
Других решений пока нет …