Мне трудно точно определить, что именно мне нужно / неправильно делать.
Я пишу плагин для WordPress, который имеет несколько файлов PHP, которые вызываются через AJAX.
Проблема, с которой я сталкиваюсь, заключается в том, как сказать WordPress, что URL относится к плагину?
У меня есть следующий код в файле pluginname.php
:
function build_form() {
// hacky way of providing the url to the front end.
echo ("<script> var submit_url = \"" . plugin_dir_url( __FILE__ ) . "submit.php \" </script>");
$asubHTML = file_get_contents(plugins_url('/estimate-form.php',__FILE__ ));
echo $asubHTML;
}
//used on a page like a widget
add_shortcode( 'estimate-form', 'build_form' );
Затем навнешний интерфейс, который мы публикуем на эхо-URL.
$.ajax({
url: submit_url,
data: {},
type: 'POST'
});
Он отлично работает, когда сообщает плагину, что представляет собой отправленный URL, но выглядит немного хакерским.
Нокогда вы переходите к реальному вызываемому скрипту PHP, вы больше не находитесь в области действия платформы WordPress, и поэтому функции WordPress работать не будут.например,
wp_mail(),plugin_dir_url()
Мне кажется, что мне не хватает чего-то очень важного для регистрации URL или чего-то подобного в файле плагина.
Если я могу быть более яснымПожалуйста, дайте мне знать, как.