web-dev-qa-db-fra.com

Erreur fatale: Erreur non capturée: appel de la fonction non définie get_option ()

Je veux résoudre ce problème car j'envoie une requête ajax depuis la page du plugin vers un autre fichier verifyapi.php, mais cela me donne une erreur comme ci-dessous.

Fatal error: Uncaught Error: Call to undefined function get_option() in verifyapi.php

Mais en ajoutant en dessous de la ligne

require_once('../../../../../wp-config.php');

en plus de verifyapi.php cela fonctionne bien mais je ne le veux pas car WordPress ne vous permet pas d’ajouter un fichier core WordPress dans votre fonction, y at-il un autre moyen de le faire.

Voici le code js de la page admin-ui.php qui envoie des données à verifyapi.php, puis obtient une réponse.

function savedata()
{
  var keyflag=document.getElementById("key_box_flag").value;
  if(keyflag=1)
  {
    var key=document.getElementById("key_box").value;
  jQuery.ajax({
   url:"<?php echo plugins_url( '/', __FILE__ ); ?>verifyapi.php",
   type:"POST",
   async:true,
   data:{"key":key,
       "save":1 },
   success: function(data)
   {
    location.reload();
   }

  });

  }
  else {

  }
}
1
David Cring

Au lieu de cela, écrivez simplement votre propre fonction dans le verifyapi.php, puis incluez-la dans le fichier principal de votre plugin, en utilisant ceci:

require_once('verifyapi.php');

De cette façon, vous avez accès à la fonction de WordPress dans votre fichier verifyapi.php.

Maintenant, dans votre fichier verifyapi.php, créez un gestionnaire Ajax (cependant, je vous recommanderais d'utiliser un noeud final REST:):

add_action('wp_ajax_your_', 'handler_function');
add_action('wp_ajax_nopriv_your_handler_name', 'handler_function');
function photogram_ajax_handler() {
    // Your verification here
}

Jusqu'ici tout va bien. Une dernière étape consiste à modifier l'URL en admin-ajax.php. Pour ce faire, utilisez ceci:

   ...
   url:"<?php echo site_url('/wp-admin/admin-ajax.php'); ?>",
   ...

Tous ensemble.

0
Jack Johansson