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 {
}
}
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.