2015-06-24 3 views
0

Я нашел несколько человек, которые ищут решения для osclass, которые, похоже, не очень популярны, поскольку плагины так надеются, что моя проблема также поможет другим.Интеграция API osclass

Я создал php API, который интегрируется с Interspire Email Marketer (IEM).

Когда кто-то подписывается, чтобы стать рекламодателем на сайте osclass, следующие API свяжутся с Interspire Email Marketers XML.PHP и добавят подписчика в список.

Я немного зациклен на том, что добавить к кнопке SUBMIT формы регистрации Osclass. Херес API:

<?PHP 

// CHECK AUTHORIZATION 
// ------------------------------------------------------------------------- ----- 
if ($MailingListAuth == true) { 

/
// ------------------------------------------------------------------------- ----- 
$s_name = check_type('s_name'); 
$s_email = check_type('s_email'); 
// ------------------------------------------------------------------------------ 

$xml = '<xmlrequest> 
<username>MyIEMUserName</username> 
<usertoken>b331be663b16ae7atolkeiias9f7hgkg7ff2f1d</usertoken> 
<requesttype>subscribers</requesttype> 
<requestmethod>AddSubscriberToList</requestmethod> 

<details> 
<emailaddress>'.$s_email.'</emailaddress> 
<mailinglist>2</mailinglist> 
<format>html</format> 
<confirmed>yes</confirmed> 

<customfields> 

<item> 
<fieldid>2</fieldid> 
<value>'.$s_name.'</value> 
</item> 

</customfields> 

</details> 
</xmlrequest> 
'; 

$ch = curl_init('https://example.com/mail/xml.php'); //CHANGE TO THE PATH OF  YOUR IEM INSTALLATION 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); 
$result = @curl_exec($ch); 
if($result === false) {die("Error performing request");} 
//var_dump($result); //for debugging purposes 
//Example of how to display returned data 
$xml_doc = simplexml_load_string($result); 
if ($xml_doc->status == 'SUCCESS' && empty($xml_doc->data)) {die('Status is  success. Empty response.');} 
if ($xml_doc->status == 'SUCCESS') { 
    echo 'Response: <br />'; 
    var_dump($xml_doc->data); 
} else { 
    echo 'Error is '. $xml_doc->errormessage; 
} 

} 

?> 

Heres форма osclass код кнопки

<button type="submit" class="ui-button ui-button-middle ui-button-main"><? php _e("Create", 'bender'); ?></button> 

Я не знаю, как я называю страницу API PHP так, что он отправляется на IEM и добавляет абоненту.

ответ

0

У вас есть крючки и плагинов, вы можете использовать «user_register_completed» крюк

, например

function IEM_subscribe($userId) { 
    $user = User::newInstance()->findByPrimaryKey($userId); 
    //YOUR CODE HERE 
    // user's email is in $user['s_email'] 
    // user's name is in $user['s_name'] 
} 
osc_add_hook('user_register_completed', 'IEM_subscribe'); 

Эта функция будет вызываться после того как пользователь зарегистрирован, что вы хотите назвать это раньше, используйте крюк pre_user_post.

+0

Спасибо за ответ. Это звучит немного сложно, но Il отдает ему ход. Еще раз спасибо – Hawk007

+0

Спасибо @CONEJO, но это немного отличается от моих способностей. Я не понимаю, куда идет этот код, и как код списка рассылки IEM подходит к добавляемому фрагменту? Добавление всего кода на страницу сделает мое имя пользователя и токен администратора видимым, если вы просмотрите источник страницы, который кажется немного неуверенным? Код, который я добавил в tope, является реальной страницей и поэтому не понимаю, как это можно сделать с кодом, который вы отправили. Я новичок в osclass и, возможно, урожденная больше, но я действительно не хочу становиться таким же большим кодером, как вы сами, и некоторые другие. Спасибо, в любом случае. – Hawk007