Intereting Posts
статическая целевая страница, ведущая к конкретным страницам автора с «живым» контентом Где я могу найти (бесплатно) полностью интернационализированные темы? перемещение файлов WordPress в корневой каталог – Не удалось загрузить ресурс: 404 (не найдено) Как изменить, откуда плагин извлекает обновления? Скользящий карусель в wordpress Будет ли current_user больше не глобальным? Прокрутите все сообщения, отображающие дубликаты Каков правильный способ реализации функций в footer.php Стили стилей, такие как «Дополнительные CSS» Иерархия таксономии / категории теряется при редактировании сообщений Отображение внешнего домена для WordPress, установленного на субдомене Стандартный WP_Query не возвращает результаты Число столбцов, не отображающих определенный номер Отправить еженедельную электронную почту, если пользователи не заполнили свои профили Включено по умолчанию в виджетах WordPress

Ошибка захвата и отображения при действии save_post.

Я написал эту функцию, которая добавляет данные во внешний db каждый раз, когда создается пользовательская запись, называемая «событие». Как я могу предотвратить сохранение, если эта функция возвращает ошибку? На данный момент информация не добавляется во внешний db, и никакая ошибка не отображается, хотя у меня есть try / catch.

function add_campaign_to_SF( $post_id) { if ('event' == $_POST['post-type']) { try { $sObject = new stdclass(); $sObject->Name = get_the_title( $post_id ); $sObject->StartDate = date("Ymd", strtotime($_POST["events_startdate"])); $sObject->EndDate = date("Ymd", strtotime($_POST["events_enddate"])); $sObject->IsActive = '1'; $createResponse = $mySforceConnection->create(array($sObject), 'Campaign'); $ids = array(); foreach ($createResponse as $createResult) { print_r($createResult); array_push($ids, $createResult->id); } } catch (Exception $e) { echo $mySforceConnection->getLastRequest(); echo $e->faultstring; } } } add_action( 'save_post', 'add_campaign_to_SF'); 

Сообщение WordPress «сохраняет» работу путем публикации, обработки и перенаправления на исходную страницу. Поместите die после ошибки, и вы увидите свои ошибки, когда это необходимо. Без этого страница перенаправляет, прежде чем вы увидите сообщение об ошибке.

По-моему, вам лучше было бы отлаживать и записывать в журнал ошибок .

 catch (Exception $e) { error_log($mySforceConnection->getLastRequest()); error_log(echo $e->faultstring); } 

vancoder правильно, что это в основном проблема PHP, но, учитывая, что я считаю, что проблема связана с шаблоном post / process / redirect WordPress, я думал, что ответ был в порядке. Если я прав, это должно устранить путаницу.

Кроме того, save_post запускается после того, как большая часть почтовых данных была сохранена, поэтому, если вам нужно прервать первичное сохранение, это не будет ошибкой.