簡體   English   中英

在wordpress插件中從js調用php函數

[英]Call php function from js in wordpress plugin

我正在嘗試將一些數據從 js 傳遞到我目前正在開發的 WordPress 插件中的 PHP 函數,但我不確定這是否是這樣做的方式。 基本上我想要實現的目標如下:

  1. 單擊按鈕時發送帖子或通過 js 獲取。
  2. 在 PHP 中,如果 post/get 沒有錯誤,則調用一個函數。 並顯示“OK”響應消息。
  3. 它有錯誤顯示“錯誤”響應消息。

現在它的工作原理是它總是返回 0 而我不知道如何正確訪問響應。 有人能幫我一下嗎? 如果重要的話,所有這些都發生在 wp-admin 區域。 下面是代碼。

函數.php:

add_action('wp_ajax_post_type_search_callback', 'my_callback');

function my_callback() {
  $data= $_POST['variable'];

  $output= 'i was returned with ajax';
  //need to echo output and exit here ?
  echo $output;
  exit();
}

JS:

$('#import_posts').on('click', function(e) {
  $.ajax({
    type: "POST",
    url: "/wp-admin/admin-ajax.php",
    data: {
      action: 'my_callback',
      variable: 45
    },
    success: function (output) {
     $('.response').html(output);
    }
  });
});

HTML:

  <button id="import_posts" class="button button-primary button-large">Submit</button>
  <div class="response">
    response
  </div>

我希望這對你有用。

您在 JS 文件“my_callback”中傳遞動作,但在 PHP 文件中沒有這樣的動作可用。 您需要更改此行。

add_action('wp_ajax_search_callback', array($this, 'my_action_post_type_search_callback'));

此外,如果可能,請傳遞 admin-ajax.php 文件的動態路徑,以便您可以從任何站點頁面使用此文件。 當前集成僅適用於主頁。 您可以通過 wp 的默認函數<?php echo admin_url('admin-ajax.php'); ?>獲取 admin-ajax.php 的路徑<?php echo admin_url('admin-ajax.php'); ?> <?php echo admin_url('admin-ajax.php'); ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM