Привет, я пытаюсь добавить в свой магазин функцию, которая, когда кто-то нажимает на продукт, а не перенаправляется на страницу продукта, загружает страницу продукта с помощью ajax на домашней странице, например, в этот сайт (нажмите на один из продуктов): http://www.itsjustyes.com. Это мой jquery:Загрузить шаблонную часть с помощью Ajax в Wordpress
jQuery(document).ready(function($){
$('.info_btn').on('click',function(){
var theId = $(this).attr('id');
var div = $('#product-container')
$.post('wp-admin/admin-ajax.php',{
action:'my_get_posts',post_id: theId
}, function(data){
console.log(data);
div.html(data);
})
return false;
});
});
Это мой код в functions.php:
//Ajax call to product
функция my_get_posts_return() {
global $post;
$post_id = intval(isset($_POST['post_id']) ? $_POST['post_id'] : 0);
if ($post_id > 0) {
$the_query = new WP_query(array('p' => $post_id));
if ($the_query->have_posts()) {
while ($the_query->have_posts()) : $the_query->the_post();
wc_get_template_part('content', 'single-product');
endwhile;
} else {
echo "There were no posts found";
}
}
wp_die();
}
add_action ('wp_ajax_my_get_posts', 'my_get_posts_return'); add_action ('wp_ajax_nopriv_my_get_posts', 'my_get_posts_return');
Я продолжаю получать, что в цикле не было сообщений, что является странным, потому что я знаю, что отправляю правильный идентификатор сообщения. Кстати, если я попытаюсь получить отдельные части страницы продукта с помощью get_the_title ($ post_id), я получаю ее просто отлично. Только когда я пытаюсь загрузить часть шаблона с помощью цикла, я получаю эту проблему. Любая идея, что я делаю неправильно?
Это работало! Большое спасибо. Я знал, что близко, но полностью застрял. Ты полностью спас меня. Благодарю. –