На основе вашего кода (однако это не стандартная практика, но для вас) попробуйте следующий код.
template.php
<script type="text/javascript">
$('.favorite').click(function() {
$.ajax({
type: "POST",
url: "<?php echo admin_url( 'admin-ajax.php' ); ?>",
data: { "action": "add_data", "post_id": "<?php echo get_the_id(); ?>", "user_id": "<?php echo get_current_user_id(); ?>" },
beforeSend: function() {
// If you want to add loader code
}
success: function(response) {
if( response == 'inserted' ) {
alert( "Data Saved: " + msg );
}
// If you have loaded remove that here.
},
error: function() {}
});
});
</script>
Добавить следующий код (скопируйте и вставьте, поскольку в вашем коде есть обратная кавычка, которая не будет принята в массиве) в файл functions.php вашей активной темы
add_action("wp_ajax_add_data", "add_data");
add_action("wp_ajax_nopriv_add_data", "add_data");
function add_data() {
}
if($_POST['user_id'], $_POST['post_id'])) {
global $wpdb;
$datetime = date("Y-m-d H:i:s");
$wpdb->insert(
'wp_favorites',
array(
'user_id => $_POST['user_id'],
'post_id => $_POST['post_id'],
'datetime => $datetime
)
);
if( $wpdb->insert_id ) {
echo 'inserted';
}
die();
}
Удалите весь код, упомянутый в вопросе. Это должно работать для вас!