3

キャンペーンをセグメントに送信する方法を知っている人はいますか? このコードは機能していません。キャンペーンのすべての人にメールが送信されます。セグメントは使用されません。(これはもう少しテキストなので、SO の検証に合格することができます。)

私のコード:

    //get member list
    $memberArray = $api->listMembers($inStockListId);
    foreach ($memberArray['data'] as $member) {
        $memberInfo = $api->listMemberInfo($inStockListId, $member['email']);
        $_productId = $memberInfo['data'][0]['merges']['PRODUCTID'];

$productId='34';
        if ($productId == $_productId) {
            array_push($emailArray, $member['email']);
        }
    }

    //create new segment for campaign
    $listStaticSegmentId = $api->listStaticSegmentAdd($inStockListId, 'inStockStaticSegment');

    //add members to segment
    $val = $api->listStaticSegmentMembersAdd($inStockListId, $listStaticSegmentId, $emailArray);

    $conditions = array();
    $conditions[] = array(
        'field' => 'email',
        'op'    => 'like',
        'value' => '%'
    );
    $segment_options = array(
        'match'      => 'all',
        'conditions' => $conditions
    );

    $type    = 'regular';
    $options = array(
        'template_id' => $campaignTemplateId,
        'list_id'     => $inStockListId,
        'subject'     => 'In-Stock Notification',
        'from_email'  => 'from@email.com',
        'from_name'   => 'My From Name'
    );
    $content = array(
        'html_main'       => 'some pretty html content',
        'html_sidecolumn' => 'this goes in a side column',
        'html_header'     => 'this gets placed in the header',
        'html_footer'     => 'the footer with an *|UNSUB|* message',
        'text'            => 'text content text content *|UNSUB|*'
    );

    $newCampaignId = $api->campaignCreate($type, $options, $content, $segment_options);
4

1 に答える 1

2

私はそれを考え出した。基本的に、ここにフローがあります。詳細なコードが必要な場合は、私にメッセージを送ってください。喜んでお手伝いします。

$api = new MCAPI($this->_apiKey);
$api->listMemberInfo($this->_listId, $member['email']);
$api->listUpdateMember($this->_listId, $member['email'], $mergeVars);
$api->listStaticSegmentDel($this->_listId, $segment['id']);
$api->listStaticSegmentAdd($this->_listId, $segmentName);
$api->listStaticSegmentMembersAdd($this->_listId, $segmentId, $emailArray);
$api->campaignCreate($type, $options, $content, $segment_options);
//$api->campaignSendTest($newCampaignId, array($member['email']));
$api->campaignSendNow($newCampaignId);

これはMailChimpPHPAPIを介して行われることに注意してください。

于 2012-10-25T17:31:08.713 に答える