0

此功能将自定义帖子“事件”数据添加到 Salesforce 数据库中。我已经在 Wordpress 之外测试了该功能,它可以完美运行。当我通过添加新事件在 Wordpress 中对其进行测试时,不会产生错误,并且数据不会插入到 SF 数据库中。我还通过打印 $_POST 对此进行了测试,并看到正在收集数据。我怎样才能得到这个显示一些错误,以便我可以解决这个问题?

function add_campaign_to_SF( $post_id) {
    global $SF_USERNAME;
    global $SF_PASSWORD;

    if ('event' == $_POST['post-type']) {
        try {
              $mySforceConnection = new SforceEnterpriseClient();
              $mySoapClient = $mySforceConnection->createConnection(CD_PLUGIN_PATH . 'Toolkit/soapclient/enterprise.wsdl.xml');
              $mySFlogin = $mySforceConnection->login($SF_USERNAME, $SF_PASSWORD);

              $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) {
                        error_log($createResult);
                        array_push($ids, $createResult->id);
                    }

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

 add_action( 'save_post', 'add_campaign_to_SF');
4

1 回答 1

1

我会get_post_type()用来检查“事件”帖子。用于error_log()写入 PHP 错误日志以进行额外调试 - 检查您的 Salesforce 登录状态等。

请记住,每次save_post保存帖子(创建或更新)时都会运行,因此您可能需要在 Salesforce 中创建新帖子之前进行一些额外的检查(例如设置元值),否则您最终会出现重复。Campaign

function add_campaign_to_SF( $post_id ) {
    $debug = true;
    if ($debug) error_log("Running save_post function add_campaign_to_SF( $post_id )");
    if ( 'event' == get_post_type( $post_id ) ){
        if ($debug) error_log("The post type is 'event'");
        if ( false === get_post_meta( $post_id, 'sfdc_id', true ) ){
            if ($debug) error_log("There is no meta value for  'sfdc_id'");
            // add to Salesforce, get back the ID of the new Campaign object
            if ($debug) error_log("The new object ID is $sfdc_id");
            update_post_meta( $post_id, 'sfdc_id', $sfdc_id );
        }
    }
}
add_action( 'save_post', 'add_campaign_to_SF' );
于 2013-04-09T00:15:17.473 回答