Мне было поручено связать задания в Jobadder с WP-сайтом моего клиента.
Jobadder не может использовать SFTP, который был моим предпочтительным вариантом, поэтому план b заключается в отправке HTTP-данных XML на веб-сайт.
Они попросили URL, поэтому я провел некоторое исследование и обнаружил, что в WP есть встроенные функции для этого.
Итак, вот мой код в файле functions.php темы
add_action( 'rest_api_init', function () {
register_rest_route( 'xmlfeed/v1', '/jobs', array(
'methods' => 'POST',
'callback' => 'get_jobs',
) );
} );
function get_jobs() {
header('Content-type: text/xml');
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
$data = file_get_contents("php://input");
$xmlfile = "jobs.xml";
$FileHandle = fopen($xmlfile, "w") or die("can't open file");
fwrite( $FileHandle, str_replace("xml=", "", urldecode($data)) );
fclose($FileHandle);
}
Итак, когда я иду на http://xxx.staging.wpengine.com/wp-json/xmlfeed/v1/jobs в Почтальоне и добавляю некоторые XML-данные в тело, которое он отображает обратно.
Однако, похоже, не запускается код для записи вXML-файл.
Я никогда не делал этого раньше и не нашел в интернете ничего, что могло бы помочь, поэтому надеюсь, что кто-нибудь укажет мне правильное направление.