WordPress выполняет URL в коде при вызове через wp_mail ()

Я написал собственный плагин (который создает пользовательский тип сообщения) и позволяет любому пользователю отправлять новое сообщение из формы на моем веб-сайте. Чтобы предотвратить ботов, я установил код подтверждения по электронной почте, который они должны щелкнуть, чтобы изменить статус сообщения с Черновика на Опубликованный.

К сожалению, приведенный ниже код wp_mail (), похоже, выполняет этот URL-адрес подтверждения автоматически. Как только сообщение отправлено, оно устанавливается на Черновик, пока не достигнет этого кода, а затем автоматически публикуется.

Однако удаление этого блока заставляет все работать как положено. Кто-нибудь имеет представление о причине и как это исправить?

$confirm_url = site_url(). '/verification?id=' . $post_id . '&hash=' . $hash;

// Send a verification e-mail to the user to confirm publication
$subject = 'Please confirm your Slicer Profile submission';
$body = $confirm_url;
wp_mail( $profile_email, $subject, $body );

1

Решение

Это было решено, хотел поделиться решением для всех, кто может наткнуться на это сами. Site_url () хранился в своей собственной переменной, и косая черта в строке URL не была должным образом экранирована, что, похоже, вызывало проблему.

Теперь это было обновлено до следующего и отлично работает.

$site_url = site_url();
$confirm_url = $site_url. '\/verification?id=' . $post_id . '&hash=' . $hash;

// Send a verification e-mail to the user to confirm publication
$subject = 'Please confirm your Slicer Profile submission';
$body = $confirm_url;
wp_mail( $profile_email, $subject, $body );
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]