首页 > 解决方案 > 如何使用 php-sdk API 更新 infusionsoft 联系人的自定义字段?

问题描述

我正在研究使用 PHP SDK 更新 infusionsoft 联系人的自定义字段数据的自定义解决方案,API 的文档不是那么好,这是我到目前为止所做的。

global $wpdb;
$keap_token_table = $wpdb->prefix . "keap_token";

$infusionsoft = new \Infusionsoft\Infusionsoft(array(
    'clientId'     => ‘clientID',
    'clientSecret' => 'clientSecret',
    'redirectUri'  => home_url(),
));

$results = $wpdb->get_results("SELECT token_id, keap_token, refresh_token FROM {$keap_token_table} ORDER BY token_id DESC LIMIT 1",'ARRAY_A');

$token_id = $results[0]['token_id'];
$keap_token = $results[0]['keap_token'];
$keap_token = unserialize($keap_token);

if($keap_token) {
    $infusionsoft->setToken($keap_token);

    $refreshed_token = $infusionsoft->refreshAccessToken();

    $data_update = array('keap_token' => serialize($refreshed_token));
    $data_where = array('token_id' => $token_id);
    $wpdb->update($keap_token_table , $data_update, $data_where);

    $registered_user = $infusionsoft->contacts()->where(array('email'=>$billing_email, 'limit' => '1'))->get();

    
    if(!$registered_user->isEmpty()) {

        $contact_id = $registered_user->get(0)->getAttribute('id');

        if($registered_user->get(0)->getAttribute('email_addresses')[0]['email'] === $billing_email) {
            if($to_be_included === "1") {
                // $contact_update = $infusionsoft->contacts()->mock(['id' => $contact_id, '_ToBeIncludedInDirectory' => '1'])->save();
            }
        }
    }
}

以下是我在谷歌上搜索过的几个解决方案,但似乎没有一个对我有用。

$data = [
                    '_ToBeIncludedInDirectory' => '1',
                    '_DirectoryVisibilityStatus' => $visibility_status,
                    '_MemberDirectoryAddress' => $directory_address,
                    '_AreaOfSpeciality' => 'None'
                ];
                $contact_update = $infusionsoft->update($contact_id, $data);

                $contact_update = $infusionsoft->contacts()->mock(
                    [
                        'id' => $contact_id,
                        "custom_fields" => [
                            {
                                "contents": {
                                    '_ToBeIncludedInDirectory' => '1',
                                    '_DirectoryVisibilityStatus' => $visibility_status,
                                    '_MemberDirectoryAddress' => $directory_address,
                                    '_AreaOfSpeciality' => 'None'
                                },
                                "id": $contact_id
                            }
                        ]
                    ]
                )->save();

我只想更新自定义字段,更新后我想获取它们并在网站上显示它们。提前致谢。

标签: phpapirestinfusionsoft

解决方案


推荐阅读