Extending Logic Hop

Quick Reference

Overview

Logic Hop offers a number of add-on integrations to connect third-party services such as Google Analytics, Drip and WooCommerce to provide personalization through conditions, goals and data display. We are constantly working to add new integrations so if there’s one you’d like to see, please contact us and let us know.

If you’re interested in building your own integration a great starting point is to download one of our existing add-ons and modify the code to work for your needs.

With Logic Hop 3.1.5 we’ve added functionality to make it easier to directly integrate data without an add-on integration through our Custom Object functionality.

Custom Post Types

Logic Hop supports Custom Post Types as of version 3.2.1.

Adding a Custom Post Type makes Custom Post data available for:

  • The current session
  • Future site visits

Custom Post data is stored in the Page variable and Pages and PagesSession arrays of the Logic Hop data variable.

Learn more about the Logic Hop data variable

Custom Post data can be used in Logic Hop Conditions with any Condition Type that supports page data.

Learn more about Condition Types

Enabling a Custom Post Type

To enable a Custom Post Type for use within Logic Hop you must add the post type using both PHP and Javascript (for the Condition Builder).

Javascript Code

Create a file within your theme folder named logichop-cpt.js with the following code, replacing your-custom-post-type with the post type of your Custom Post Type:

if (typeof logicHopCB !== 'undefined') {
    logicHopCB.addPostType('your-custom-post-type');
}

Multiple post types can be enabled by adding additional lines of logicHopCB.addPostType(‘custom-post-type’);

PHP Code

Add the following PHP Code to your functions.php file, replacing your-custom-post-type with the post type of your Custom Post Type:

function logic_hop_enable_cpt ( $types ) {
    $types[] = 'your-custom-post-type';
    return $types;
}
add_filter( 'logichop_update_data_post_types', 'logic_hop_enable_cpt' );

function logic_hop_enqueue_cpt_scripts () {
    wp_enqueue_script( 'logichop-cpt', get_stylesheet_directory_uri() . '/logichop-cpt.js', array( 'logichop' ) );
}
add_action( 'admin_enqueue_scripts', 'logic_hop_enqueue_cpt_scripts' );

Multiple post types can be enabled by adding additional lines of $types[] = ‘custom-post-type’;

Custom Taxonomies

Logic Hop supports Custom Taxonomies as of version 3.2.1.

Adding a Custom Taxonomy makes Taxonomy data available for:

  • The current session
  • Future site visits

Custom Taxonomies are stored in the Tag or Category variables and Categories and CategoriesSession or Tags and TagsSession arrays of the Logic Hop data variable.

Learn more about the Logic Hop data variable

Custom Taxonomy data can be used in Logic Hop Conditions with any Condition Type that supports tag or category data.

Learn more about Condition Types

Enabling a Custom Taxonomy

To enable a Custom Taxonomy for use within Logic Hop you must add the taxonomy using PHP (for the Condition Builder).

PHP Code

Categories

Add the following PHP Code to your functions.php file to add custom categories:

function logic_hop_enable_custom_categories ( $types ) {
    $types[] = 'your-custom-category';
    return $types;
}
add_filter( 'logichop_update_data_categories', 'logic_hop_enable_custom_categories' );

Multiple categories can be enabled by adding additional lines of $types[] = ‘your-custom-category’;.

Tags

Add the following PHP Code to your functions.php file to add custom tags:

function logic_hop_enable_custom_tags ( $types ) {
    $types[] = 'your-custom-tag';
    return $types;
}
add_filter( 'logichop_update_data_tags', 'logic_hop_enable_custom_tags' );

Multiple tags can be enabled by adding additional lines of $types[] = ‘your-custom-tag’;

Logic Hop Custom Object

The Logic Hop Custom Object is an empty container within the Logic Hop dataset to which you can read and write data. This data is available for individual users during their session on your website.

The Custom Object has no persistence beyond the current session, and if needed on repeat visits, you can associate specific users with their unique Logic Hop UID. User sessions end when the user quits their browser or after a period of inactivity – Typically twenty minutes.

Custom Object data is never sent to or stored in the Logic Hop database, so you can use it any way you see fit.

Note: Logic Hop stores temporary data in PHP sessions so it is important to take the amount of data into consideration. Smaller bits of data, such as numeric IDs, which can be looked up against other systems are typically ideal.

Store Custom Object Data with PHP

Storing data in the Custom Object with PHP is done using the logichop_update_data hook to pass your key and data into the $logichop->set_data( key, data ) method.

The following code adds an object to the key ‘my_key’:

function my_custom_stuff () {
    global $logichop;

    $my_data = new stdclass();
    $my_data->user_gender = 'female';
    $my_data->user_age = 42;

    $logichop->set_data( 'my_key', $my_data );
}
add_action( 'logichop_update_data', 'my_custom_stuff', 10, 2 );

Once your data has been stored in the Custom Object it is immediately accessible for use in conditions and display. The data can also be retrieved with Javascript or PHP.

Note: Custom Object keys must be a valid PHP variable name.

Learn how to viewed stored variables for testing.

Retrieve Custom Object Data with PHP

Custom Object data can be retrieved with PHP in the same manner as any Logic Hop data.

Return Data

global $logichop;
$logichop->get_data( 'LeadScore', false );

Echo Data

global $logichop;
$logichop->get_data( 'LeadScore', true );

Note that custom variables must be prefixed with ‘Custom’ when accessing them through get_data or echo_data:

$logichop->set_data( 'MyVariable', $some_data ); // set custom data
$logichop->get_data( 'Custom.MyVariable' ); // access custom data

Learn more about Logic Hop PHP.

Learn more about Logic Hop data variables.

Retrieve Custom Object Data with Javascript

Custom Object data can be retrieved with Javascript in the same manner as any Logic Hop data.

Return Logic Hop data via Javascript:

var my_key = logichop_var('Custom.my_key');

Learn more about Javascript Variables

Display Custom Object Data with Logic Tags

Similar to standard Data Logic Tags, Custom Object Logic Tags can be used to display content within pages and posts.

The following will display the user’s age’:

{{ var: Custom.my_key.user_age }}

Learn more about Data Logic Tags.

Evaluate Custom Object Data with Conditions

Logic Hop provides Custom Object Condition Types within the Logic Hop Condition Builder. These can be used to evaluate Custom Object data and personalize content based on the results.

Custom Object Condition

Condition Types

  • Custom Data Object
    • Is the Custom Data Object variable set to a specific value.
  • Custom Data Object Contains
    • Does the Custom Data Object variable contain a specific value.

Learn more about conditions.

User Data Action

Logic Hop provides a WordPress Action logichop_user_data_set that is triggered at various times user data is available, specifically:

  • When the user first visits your site
  • When the user logs in
  • When the user logs out

When triggered, the logichop_user_data_set action passes along the current WP_User instance and can be used in the following manner:

function your_function ( $user ) {
    // Your Code Here
}
add_action( 'logichop_user_data_set', 'your_function', 10, 1 );

This can be used in conjunction with the Logic Hop Custom Object to make user data from third-party plugins available for use in Logic Hop Conditions or with Logic Tags. The following is an example of adding user data to the Custom Object:

function your_user_data_function ( $user ) {
    global $logichop;

    $my_data = new stdclass();
    $my_data->user_gender = 'female';
    $my_data->user_age = 42;

    $logichop->set_data( 'my_key', $my_data );
}
add_action( 'logichop_user_data_set', 'your_user_data_function', 10, 1 );
Yo ! Thanks for checking out Logic Hop!