2013-04-08 6 views
0

이 함수는 커스텀 포스트 '이벤트'데이터를 Salesforce 데이터베이스에 추가합니다. 나는 Wordpress의 밖에서 기능을 시험했고 그것은 완벽하게 작동한다. 새 이벤트를 추가하여 Wordpress에서 테스트 할 때 오류가 생성되지 않고 데이터가 SF db에 삽입되지 않습니다. 또한 $ _POST를 출력하여 데이터를 검사하여 데이터가 수집되고 있음을 확인했습니다. 이 문제를 일으킬 수 있도록이 디스플레이에 몇 가지 오류를 표시하려면 어떻게해야합니까?Wordpress 커스텀 포스트 타입 데이터를 외부 db에 추가

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'); 

답변

1

"이벤트"게시물을 확인하려면 get_post_type()을 사용합니다. 추가 디버깅을 위해 PHP 오류 로그에 기록 error_log()를 사용하여 - 당신의 세일즈 포스 로그인의 상태를 확인 등

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'); 
+0

이 wp_insert_post_data 필터를 더 나은 옵션으로 사용하고 있습니까? – MG1

+0

그건 너무 업데이 트에 호출 도착 ... 난 당신이 성공적으로 SFDC에서 ID를 – doublesharp

+0

개체를 만들었습니다 나타내는 메타 값을 설정하는 방법을 보여줄 수 있습니까? – MG1

관련 문제