我编写了这个函数,每当创建一个名为“event”的自定义post时,它都会将数据添加到外部db中。如果此函数返回错误,如何防止发生保存?目前,信息没有添加到外部db中,并且没有显示任何错误,即使我有一个尝试/捕获。
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("Y-m-d", strtotime($_POST["events_startdate"]));
$sObject->EndDate = date("Y-m-d", 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\');
SO网友:s_ha_dum
WordPress post通过发布、处理和重定向回原始页面来“保存”工作。放置die
在您的错误之后,您应该在适当的时候看到您的错误。否则,页面会在看到错误消息之前重定向。
在我看来,你最好还是打开debugging 写信给error log.
catch (Exception $e) {
error_log($mySforceConnection->getLastRequest());
error_log(echo $e->faultstring);
}
vancoder是正确的,这主要是一个PHP问题,但考虑到我认为这个问题与WordPress的post/process/redirect模式有关,我认为答案是正确的。如果我是对的,那应该可以消除混乱。
而且save_post
在保存大多数post数据后运行,因此如果需要中断主保存,则这不是挂钩。