首页 > 解决方案 > 如何确定 infusionsoft 联系人是否具有特定的标签 ID

问题描述

有没有人有一个 php 代码示例来检查 Infusionsoft 联系人是否具有特定标签?我正在使用以下代码插入 Infusionsoft Campaign Builder 图像功能。该代码是一个名为 buspass.php 的文件。在我用应用的代码扫描图像后,它没有显示“显示路线#”,与“如果”语句相呼应。扫描后的图像如下所示:QR 扫描后的图像

这是我所拥有的:

<html>
<code>

  <p><img style="display: block; margin-left: auto; margin-right:auto;" src="https://d1yoaun8syyxxt.cloudfront.net/ib945-9ac2eb8c510b-4ac6-b282-bcd4552812f1-v2" alt="TOPA LOGO" width="80%" /></p>

<?php
require_once("isdk.php");
$app = new iSDK;

// Establish Connnection
if ($app->cfgCon("ib945"));

// Confirm Connection with Date Display
date_default_timezone_set("America/Phoenix");
echo "<div align='center'><h2>Scanned on " . $currentDate = 
date("Y/m/d @ h:i:sa") . "<br/></h2></div>";

echo "<div align='center'><img src='https://d1yoaun8syyxxt.cloudfront.net/ib945-321c85f8-dafe-45a1-9388-ef7fb6b7b4ec-v2'/></div>";

// Call Infusiosoft Contact Information
$Id = $_REQUEST['id'];
$fname = $_REQUEST['fname'];
$lname = $_REQUEST['lname'];
$email = $_REQUEST['email'];
$phone1 = $_REQUEST['phone1'];
$sfname1 = $_REQUEST['sfname1'];
$slname1 = $_REQUEST['slname1'];
$sfname2 = $_REQUEST['sfname2'];
$slname2 = $_REQUEST['slname2'];
$sfname3 = $_REQUEST['sfname3'];
$slname3 = $_REQUEST['slname3'];
$sfname4 = $_REQUEST['sfname4'];
$slname4 = $_REQUEST['slname4'];
$sfname5 = $_REQUEST['sfname5'];
$slname5 = $_REQUEST['slname5'];
$sfname6 = $_REQUEST['sfname6'];
$slname6 = $_REQUEST['slname6'];

//Display Parent/Guardian Information
echo "<div align='center'><h1><u>PARENT/GUARDIAN INFORMATION:</u> 
<br/><br/>
<div align='left'>Contact ID: $Id<br/>
Name: $fname $lname<br/>
Email: $email<br/>
Phone: $phone1<br/></h1></div>";

//Display Scholar Names
echo strtoupper ("<div align='center'><h1><u>BUS RIDER SCHOLAR 
NAME(S):</u></h1></div>
<div align='left'><strong><font size='24'>$sfname1 
$slname1<br/>$sfname2 $slname2<br/>$sfname3 $slname3<br/>$sfname4 
$slname4<br/>$sfname5 $slname5<br/>$sfname6 $slname6</strong> 
</div>");

//Display Route #'s
If($tagId == 1184 || $tagId == 1192) {
echo 'Route #1';
}
If($tagId == 1182 || $tagId == 1194) {
echo 'Route #2';
}
If($tagId == 1186 || $tagId == 1196) {
echo 'Route #3';
}

?>

<p><img style="display: block; margin-left: auto; margin-right:auto;" src="https://d1yoaun8syyxxt.cloudfront.net/ib945-585a8b93-7096-4240-b543-e40ffecc5699-v2" alt="Thumbs Up" width="60%" />

</code>
</html>

标签: phptags

解决方案


我不确定 QR 扫描中的内容,但您似乎在 URL 中传递联系人和其他个人的信息,对吗?看起来您正在使用 iSDK。如果你有 iSDK 文件,你应该可以使用这样的东西:

如需获取联系方式:

    $app = new iSDK;
    if (!$app->cfgCon("CONNNAME")) 
    exit; 
    $returnFields = array('Email', 'FirstName', 'LastName', 'Company');
    $conDat = $app->dsLoad("Contact", $contact_id, $returnFields);
    if (isset($conDat['Email'])){
     $email = $conDat['Email'];
    }
    if (isset($conDat['FirstName'])){
     $FirstName = $conDat['FirstName'];
    }
    if (isset($conDat['LastName'])){
     $LastName = $conDat['LastName'];
    }
    if (isset($conDat['Company'])){
     $Company = $conDat['Company'];
    }

您当然可以将字段更改为您需要的内容...

获取标签:

    $app = new iSDK;
    if (!$app->cfgCon("CONNNAME")) 
    exit;
    $fields = array('Id', 'Groups');
    $results = $app->loadCon($contact_id,$fields);
    $BufferTEXT = "0,".$results['Groups'];
    switch (true) {
     case strpos($BufferTEXT,'1184') || strpos($BufferTEXT,'1192'): 
      echo 'Route #1';
      break;
     case strpos($BufferTEXT,'1182') || strpos($BufferTEXT,'1194'): 
      echo 'Route #1';
      break;
     case strpos($BufferTEXT,'1186') || strpos($BufferTEXT,'1196'): 
      echo 'Route #1';
      break;
     default:
      echo 'No Assigned Route';
      break;
    }

我使用 $BufferTEXT 的原因是因为如果您的标签是第一个标签,则 strpos 函数将无法捕获它。因此,在数组的开头添加一个 0,为我修复了它。

我没有测试代码,我过去使用过类似的代码,它对我有用。我希望这能为您指明正确的方向。

我实际上测试了这段代码并且它有效,假设您实际上是使用连接字符串进行连接,而不仅仅是将您的应用程序 Id 放在 cfgCon 中,而且所有名称和 contactId 都进入 QR 码的 URL:

    <html>
    <code>

     <p><img style="display: block; margin-left: auto; margin-right:auto;" src="https://d1yoaun8syyxxt.cloudfront.net/ib945-9ac2eb8c510b-4ac6-b282-bcd4552812f1-v2" alt="TOPA LOGO" width="80%" /></p>

    <?php


  include 'isdk.php';
  $apiKey = 'YOURAPIKEY';
  $secret = 'YOURSECRETKEY';
  $app = new iSDK;
  //I am assuming you have set up the connection string???
  if (!$app->cfgCon("ib945")) 
  exit;

    // Confirm Connection with Date Display
    date_default_timezone_set("America/Phoenix");
    echo "<div align='center'><h2>Scanned on " . $currentDate = 
    date("Y/m/d @ h:i:sa") . "<br/></h2></div>";

    echo "<div align='center'><img src='https://d1yoaun8syyxxt.cloudfront.net/ib945-321c85f8-dafe-45a1-9388-ef7fb6b7b4ec-v2'/></div>";

    // Call Infusionsoft Contact Information
    // I am assuming that you are passing this data in the url???
    $Id = $_REQUEST['id'];
    $fname = $_REQUEST['fname'];
    $lname = $_REQUEST['lname'];
    $email = $_REQUEST['email'];
    $phone1 = $_REQUEST['phone1'];
    $sfname1 = $_REQUEST['sfname1'];
    $slname1 = $_REQUEST['slname1'];
    $sfname2 = $_REQUEST['sfname2'];
    $slname2 = $_REQUEST['slname2'];
    $sfname3 = $_REQUEST['sfname3'];
    $slname3 = $_REQUEST['slname3'];
    $sfname4 = $_REQUEST['sfname4'];
    $slname4 = $_REQUEST['slname4'];
    $sfname5 = $_REQUEST['sfname5'];
    $slname5 = $_REQUEST['slname5'];
    $sfname6 = $_REQUEST['sfname6'];
    $slname6 = $_REQUEST['slname6'];

    //Display Parent/Guardian Information
    echo "<div align='center'><h1><u>PARENT/GUARDIAN INFORMATION:</u> 
    <br/><br/>
    <div align='left'>Contact ID: $Id<br/>
    Name: $fname $lname<br/>
    Email: $email<br/>
    Phone: $phone1<br/></h1></div>";

    //Display Scholar Names
    echo strtoupper ("<div align='center'><h1><u>BUS RIDER SCHOLAR 
    NAME(S):</u></h1></div>
    <div align='left'><strong><font size='24'>$sfname1 
    $slname1<br/>$sfname2 $slname2<br/>$sfname3 $slname3<br/>$sfname4 
    $slname4<br/>$sfname5 $slname5<br/>$sfname6 $slname6</strong> 
    </div>");
    //Display Route #'s

    $fields = array('Id', 'Groups');
    $results = $app->loadCon($Id,$fields);
    $BufferTEXT = "0,".$results['Groups'];

    switch (true) {
     case strpos($BufferTEXT,'1184') || strpos($BufferTEXT,'1192'): 
      echo 'Route #1';
      break;
     case strpos($BufferTEXT,'1182') || strpos($BufferTEXT,'1194'): 
      echo 'Route #2';
      break;
     case strpos($BufferTEXT,'1186') || strpos($BufferTEXT,'1196'): 
      echo 'Route #3';
      break;
     default:
      echo 'No Assigned Route';
      break;
    }

    ?>

    <p><img style="display: block; margin-left: auto; margin-right:auto;" src="https://d1yoaun8syyxxt.cloudfront.net/ib945-585a8b93-7096-4240-b543-e40ffecc5699-v2" alt="Thumbs Up" width="60%" />

    </code>
    </html>

推荐阅读