Op verschillende plekken in de CampaignSuite code zijn Wordpress filters ingebouwd. Deze maken het mogelijk om als developer in het thema invloed uit te oefenen op de data die op dat moment door CampaignSuite wordt gebruikt.
Alle filters kunnen het beste geplaatst worden in de functions.php van uw thema. Klik op onderstaande artikelen om de verschillende filters te bekijken.
Met dit filter kunt u de contact- en account-array manipuleren wanneer deze gegevens worden gemaakt vlak voordat een formulier wordt gevalideerd.
Gebruik
add_filter( 'cs_validate_contact_account', 'custom_contact_account' );
//You can also use a Gravity Forms form ID to target a specific form
add_filter( 'cs_validate_contact_account_6', 'custom_contact_account' );
Parameters
$contact_account (array) Deze array geeft de weergegeven contact- en account-arrays door. Deze waarde moet worden geretourneerd in de filterfunctie.
$payer (object) Dit is het volledige object van de Payer-klasse van CampaignSuite. Dit object bevat verschillende extra informatie over de betaler.
Dit is het volledige \CampaignSuite\Render_response() klasseobject van CampaignSuite. Dit object bevat informatie over het response dat wordt geretourneerd door de CS Api.
Voorbeeld
Onderstaand voorbeeld schrijft een $_SESSION[‘orig_campaign’] waarde weg op het Salesforce object Contact.
$actions (array) Dit is een array met de beschikbare acties. U kunt meer elementen aan deze array toevoegen voor aangepaste acties.
Voorbeeld
function get_feed_actions($actions)
{
$extraActions = [[
'label' => 'Maak een nieuwe Lead aan',
'value' => 'custom_lead',
'object' => 'Lead',
'objectName' => 'Lead'
]];
return array_merge($actions, $extraActions);
}
cs_get_contact_filter_fields
Beschrijving
Met dit filter kunt u meer Salesforce-contactpersoonvelden toevoegen om te controleren wanneer een contactpersoon-ID wordt doorgegeven in de URL. Standaard wordt een contactpersoon alleen gevonden op basis van een contact-ID. Voor meer veiligheid is het mogelijk om meer velden aan deze controle toe te voegen.
Onderstaand voorbeeld voegt het veld Contact.Email toe als extra check in de URL.
function cs_get_contact_filter_fields(){
return ['Email'];
}
cs_add_custom_json
Beschrijving
Met dit filter kunt u eigen custom JSON toevoegen aan de API call richting Findock of Converse. Deze JSON zal toegevoegd worden aan de root van het JSON object.
Onderstaand voorbeeld loopt door Woocommerce items in een winkelwagen en controleert of er Destination ID’s gezet zijn. Als dat het geval is zullen deze worden meegegeven in de JSON call naar de CampaignSuite API.
function custom_json()
{
global $woocommerce;
if ($woocommerce) {
$items = $woocommerce->cart->get_cart();
if ($items) {
$jsonItems = [];
foreach ($items as $values) {
$price = get_post_meta($values['product_id'], '_price',true);
$destination_id = get_post_meta($values['product_id'], '_sf_destination_id', true);
if ($destination_id) {
$jsonItems[] = [
'DestinationId' => $destination_id,
'Amount' => $price
];
}
}
if ($jsonItems) {
return [
'TransactionInfo' => [
'Gifts' => $jsonItems
]
];
}
}
}
return [];
}
Met deze actie kunt u zelf de webhook call opvangen zodat u zelf in een eigen actie kunt bepalen of er nog extra code uitgevoerd moet worden zodra er een webhook call plaatsvindt vanuit Salesforce/Findock
$payment (object) Dit object bevat alle informatie over het aangepaste Payment object uit de database tabel wp_gp_donations.
URL parameters
U kunt in de URL van uw website diverse parameters toevoegen om debug opties te activeren van CampaignSuite. Hiermee is het bijvoorbeeld mogelijk om de call richting de CampaignSuite API of Converse en Findock te debuggen.
Mogelijke parameters zijn:
?cs_debug
https://www.website.nl/formulier?cs_debug=true
Wanneer deze parameter wordt toegevoegd, wordt automatisch een formulier geladen zonder ajax. Wanneer het formulier is ingevuld, ziet u de JSON die naar de CampaignSuite API wordt verzonden. Het toont u ook de JSON die vanuit de API naar Salesforce wordt verzonden. Dit alles voordat Gravity Forms de invoer daadwerkelijk maakt.
?cs_post=true
https://www.website.nl/formulier?cs_post=true
Wanneer deze parameter wordt toegevoegd, toont elke pagina u de geposte waarden. Dit kan handig zijn als u de exacte geposte veldnamen wilt weten. Deze namen kunnen worden gebruikt in tekstgebied- en HTML-velden om vooraf te vullen met die veldwaarden.
?cs_ajax
https://www.website.nl/formulier?cs_ajax=false
Gebruik deze parameter om een Gravity Forms Ajax-instelling te overrulen met true of false.
Het ID wat in deze parameter wordt doorgegeven, moet een Salesforce-contactpersoon-ID zijn. Als de contactpersoon wordt gevonden in Salesforce, worden alle toegewezen contactpersoon- en accountvelden vooraf ingevuld met de waarden van Salesforce.
Client connecties
Als developer heb je de beschikking om de geautoriseerde verbindingen ook in je eigen thema te gebruiken. Er zijn een aantal voorgedefinieerde functies die je per connectie kunt gebruiken. Start elke connectie altijd eerst op de onderstaande manier:
Deze functie kan worden gebruikt om een lijst met objecten op te halen uit SalesForce of een enkele wanneer een ID wordt doorgegeven.
/**
* @param string $objectType Name of the Salesforce object
* @param string $id Optional Salesforce ID of the object
* @param array $fields Optional array with fields to return from the object
* @param array $where Optional array with filters
*/
function getObjects($objectType = '', $id = '', $fields = [], $where = []){}
getObjectStructure
Deze functie kan worden gebruikt om de structuur van een Salesforce-object op te halen.
/**
* @param string $objectType The name of the Salesforce object
* @return object $response The API response
*
*/
function getObjectStructure($objectType = ''){}
createCampaignMember
Deze functie doet een Post-verzoek aan de API voor een nieuw CampaignMember-object in Salesforce.
/**
* @param string $campaign_id Id of the Campaign
* @param string $contact_id Id of the Contact
* @return mixed
*/
function createCampaignMember($campaign_id, $contact_id){}
create
Functie om een nieuw record van een object in Salesforce te maken.
/**
* @param string $object Name of the Salesforce object
* @param array $data Data to save
*/
function create($object, $data){}
update
Functie om een record van een object in Salesforce bij te werken.
/**
* @param string $object Name of the Salesforce object
* @param string $id Id of the Salesforce object
* @param array $data Data to save
*/
function update($object, $id, $data){}
delete
Functie om een record van een object in Salesforce te verwijderen.
/**
* @param string $object Name of the Salesforce object
* @param string $id Id of the object to delete
*/
function delete($object, $id){}
Mautic
getForms
Functie om alle Mautic formulieren op te halen. Wanneer $id is doorgegeven, wordt slechts één formulier geretourneerd.
/**
* Function to retrieve all Mautic forms. When $id is passed, only one form is returned
*
* @param $id int Id of a Mautic form
* @return array $forms Returns an array of Mautic forms
*/
public function getForms($id = ''){}
createForm
Deze functie zal een nieuw Mautic-formulier creëren op basis van een Gravity Forms-formulier en zijn velden.
/**
* @param $type string Type can be Campaign or Standalone
* @param $form array The gravity Forms form as an array
*/
public function createForm($type, $form){}
postFormEntry
Deze functie stuurt rechtstreeks een wp_remote_post() verzoek naar Mautic. Dit is nodig omdat Mautic het IP-adres van de bezoeker nodig heeft om het contact te identificeren.
/**
* @param $form_id int Id of the Mautic form
* @param $data array Array of the data to post to the form
*/
public function postFormEntry($form_id, $data){}
updateEntry
Met deze functie wordt een Mautic-formulier inzending bijgewerkt op basis van bepaalde voorwaarden.
/**
* @param int $mautic_form_id The Mautic form ID
* @param array $where Array of conditions
* @param array $updates Array of fields to update
*/
function updateEntry($mautic_form_id, $where, $updates){}
Endpoints
Wanneer CampaignSuite geactiveerd is komen er een aantal nieuwe endpoints bij binnen Wordpress. Deze endpoints kunnen aangeroepen worden door software van derden. Hieronder staan deze endpoints uitgelegd met de daarbij behorende parameters.
gp_webhook_path
Dit endpoint kan benaderd worden door Findock en handelt alle webhook aanroepen af met betrekking tot wijzigingen van een betaling (of in het geval van Findock 2 mutaties in het PaymentIntent). CampaignSuite bepaalt zelf automatisch op basis van de inhoud van de call of het voor Findock v1 of v2 is. Bij elke API call richting Findock voegt CampaignSuite automatisch deze URL toe als WebhookURL.
Dit endpoint kan worden gebruikt om een Mautic Lead Integration te verwijderen. Dit endpoint is alleen toegankelijk met een POST-aanvraag met de volgende parameters:
Parameter
Beschrijving
email
Het e-mailadres van een Mautic lead
entityId
Het Mautic entiteit om te verwijderen
entityId
De ID van de Salesforce-entiteit (bijv. Campaign ID)
Dit endpoint kan worden gebruikt om een Mautic Lead Integration te verwijderen. Dit endpoint is alleen toegankelijk met een POST-aanvraag met de volgende parameters:
One-click-payment is een manier om via een URL direct een donatie te maken waarbij de bezoeker in één keer doorgestuurd wordt naar zijn/haar bank-pagina. Het voordeel hiervan is is dat de complete flow identiek is aan het invullen van een donatie formulier, echter zonder tussenkomst van de pagina waar het formulier op staat.
Om One-Click-Payment te laten werken moet u minstens voldoen aan de volgende punten:
Er moet een formulier aangemaakt zijn welke volledig gekoppeld is aan een Salesforce betaling
Het formulier moet wel op een pagina (desnoods verborgen) staan voor het geval de donateur zijn/haar donatie beëindigd.
Er moet een bedank bericht of bedank pagina ingesteld staan voor het succesvol afvangen van de donateur.
De velden van het formulier die u wilt vullen moeten ingesteld zijn om dynamisch gevuld te mogen worden. Lees meer informatie hierover op deze website.
Als bovenstaande punten ingesteld zijn kan de URL voor een One-Click-Payment er als volgt uit zien:
Er zijn een aantal verplichte parameters in de URL:
amount Vul hier het bedrag in voor de donatie
form_id Vul hier het ID in van het Gravity Forms formulier waar de betaling afgehandeld moet worden
contact (optioneel) Vul hier een ID in van een Salesforce Contact
Als u geen Salesforce Contact ID mee stuurt in de URL zijn een voornaam, achternaam en e-mailadres ook verplicht om mee te sturen in de URL.
Zodra men op de link klikt zal het formulier vooraf ingevuld worden met de benodigde waarden en verstuurd worden via de API. Als er velden missen of fouten plaatsvinden dan worden die direct in beeld getoond.