Плагины — Как Сохранить Переменную `$Post` Для Использования В Другом Файле

  • Автор темы Zmv8408
  • Обновлено
  • 21, Oct 2024
  • #1

Создаю плагин для быстрой оплаты.

Когда пользователь нажимает кнопку «Быстрая оплата». Показывает всплывающий вызов

 
 
 
 $('input#submit-order-quick_view').on('click', function(event) {

event.preventDefault();

var content = '';

var data_details = {

'action': 'ajax_cart_send_mail',

'hoten': getdata(frm,'hoten'),

'sdt': getdata(frm,'sdt'),

'email': getdata(frm,'email'),

'diachinhan': getdata(frm,'diachinhan'),

'product_title' : product_title,

}

$.ajax({

url: product_ajax.url,

type: 'POST',

dataType: 'text',

data: data_details,

}).done(function(data) {

console.log(data);

}).fail(function() {

console.log("Error");

});
}
 
.

В этом файле я объявляю переменную $name .

$id

ок, получится <?php add_action('wp_ajax_ajax_cart_send_mail','ajax_cart_send_mail'); add_action('wp_ajax_nopriv_ajax_cart_send_mail','ajax_cart_send_mail'); function ajax_cart_send_mail(){ global $post; $id = $post->ID; $name = get_the_title(); } ?> and $post ценности и шоу.

На ajax-send-email-save-database.php , I call it:

add_action( 'woocommerce_share', 'fun_add_link_below', 50 ); function fun_add_link_below() { global $post; if(absint($post->ID) > 0){ require(ROOTDIR . '/views/display-popup.php'); } }

Проблема в следующем:

Я создаю новый файл с именем function.php .

Этот файл также необходимо использовать $name variable to update my database.

$id

Но я получаю значения <?php global $post; $id = $post->ID; $name = get_the_title(); ?> and $post является нулевым.

Обновлять:

Мой js-файл ajax:

views/display-popup.php

#плагины #функции #база данных #представления

Zmv8408


Рег
08 May, 2020

Тем
88

Постов
198

Баллов
648
  • 25, Oct 2024
  • #2

 function ajax_cart_send_mail(){

$post = get_post( $_POST['post_id'] );

$id = $post->ID;

$name = $post->post_title;
}
add_action('wp_ajax_ajax_cart_send_mail','ajax_cart_send_mail');
add_action('wp_ajax_nopriv_ajax_cart_send_mail','ajax_cart_send_mail'); 
 
isn't set in an admin-ajax.php request because you're not querying for any post or inside a loop. In your script that sends the ajax request you'll need to send the post ID and retrieve a post object in the callback:

$post
 

Casagrandeale


Рег
29 Dec, 2008

Тем
73

Постов
202

Баллов
597
Тем
403,760
Комментарии
400,028
Опыт
2,418,908