การรวม API osclass

ฉันพบคนสองสามคนที่กำลังมองหาวิธีแก้ไขปัญหาสำหรับ osclass ซึ่งดูเหมือนจะไม่ได้รับความนิยมอย่างมากเท่าที่ปลั๊กอินใช้ หวังว่าปัญหาของฉันจะช่วยผู้อื่นได้เช่นกัน

ฉันได้สร้าง php API ซึ่งทำงานร่วมกับ Interspire Email Marketer (IEM)

เมื่อมีคนลงทะเบียนเพื่อเป็นผู้โฆษณาที่ไซต์ osclass API ต่อไปนี้จะติดต่อ Interspire Email Marketers XML.PHP และเพิ่มผู้สมัครสมาชิกลงในรายการ

ฉันติดอยู่นิดหน่อยว่าจะต้องเพิ่มอะไรลงในปุ่มส่งของแบบฟอร์มลงทะเบียน 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;
}

}

?>

นี่คือโค้ดปุ่มแบบฟอร์ม osclass

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

ฉันไม่แน่ใจว่าฉันจะเรียกหน้า API php ได้อย่างไรเพื่อให้ส่งไปที่ IEM และเพิ่มสมาชิก


person Hawk007    schedule 24.06.2015    source แหล่งที่มา


คำตอบ (1)


คุณมี hooks และปลั๊กอิน คุณสามารถใช้ hook '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'

person CONEJO    schedule 25.06.2015
comment
ขอบคุณสำหรับคำตอบ ฟังดูซับซ้อนเล็กน้อยแต่ฉันก็ลองดู ขอบคุณอีกครั้ง - person Hawk007; 26.06.2015
comment
ขอบคุณ @CONEJO แต่นั่นเกินความสามารถของฉันเล็กน้อย ฉันไม่เข้าใจว่ารหัสนั้นไปอยู่ที่ไหน และรหัสรายชื่อผู้รับจดหมาย IEM เหมาะกับตัวอย่างข้อมูลที่คุณเพิ่มอย่างไร การเพิ่มโค้ดทั้งหมดลงในเพจจะทำให้ชื่อผู้ใช้และโทเค็นผู้ดูแลระบบของฉันมองเห็นได้หากคุณดูแหล่งที่มาของเพจ ซึ่งดูเหมือนไม่ปลอดภัยเล็กน้อย รหัสที่ฉันเพิ่มที่ด้านบนเป็นหน้าจริง ดังนั้นจึงไม่เข้าใจว่าจะทำรหัสที่คุณส่งไปได้อย่างไร ฉันยังใหม่กับ osclass และอาจจำเป็นต้องเรียนรู้เพิ่มเติมอีกเล็กน้อย แต่ฉันไม่อยากเป็น coder ที่ยิ่งใหญ่เหมือนตัวคุณเองและคนอื่นๆ ในนี้ ขอบคุณนะ - person Hawk007; 26.06.2015