Deprecated: Creation of dynamic property wpdb::$categories is deprecated in /www/logichop_469/public/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$post2cat is deprecated in /www/logichop_469/public/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$link2cat is deprecated in /www/logichop_469/public/wp-includes/wp-db.php on line 668

Warning: file_exists(): open_basedir restriction in effect. File(/var/www/efs/wp-content/plugins/memcached-is-your-friend/memcached-class-object-cache.php) is not within the allowed path(s): (/www/logichop_469/public:/www/logichop_469/mysqleditor:/www/logichop_469/web:/www/logichop_469/deploy:/www/logichop_469/deployment:/www/logichop_469/deployments:/www/logichop_469/tmp:/usr/share:/tmp:/dev/urandom) in /www/logichop_469/public/wp-content/object-cache.php on line 50

Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-theme.php on line 554

Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-theme.php on line 595

Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-theme.php on line 535

Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-theme.php on line 544

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /www/logichop_469/public/wp-includes/comment-template.php on line 1745

Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/rest-api/class-wp-rest-request.php on line 960

Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/rest-api/class-wp-rest-request.php on line 980

Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/rest-api/class-wp-rest-request.php on line 992

Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/rest-api/class-wp-rest-request.php on line 1003

Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-block-list.php on line 151

Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-block-list.php on line 175

Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-block-list.php on line 164

Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-block-list.php on line 186

Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-block-list.php on line 138

Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-block-list.php on line 75

Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-block-list.php on line 89

Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-block-list.php on line 110

Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-block-list.php on line 127

Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-includes/class-wp-block-list.php on line 199

Deprecated: Return type of Pimple\Container::offsetExists($id) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-content/plugins/wp-tools-gravity-forms-divi-module-premium/vendor/pimple/pimple/src/Pimple/Container.php on line 133

Deprecated: Return type of Pimple\Container::offsetGet($id) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-content/plugins/wp-tools-gravity-forms-divi-module-premium/vendor/pimple/pimple/src/Pimple/Container.php on line 98

Deprecated: Return type of Pimple\Container::offsetSet($id, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-content/plugins/wp-tools-gravity-forms-divi-module-premium/vendor/pimple/pimple/src/Pimple/Container.php on line 79

Deprecated: Return type of Pimple\Container::offsetUnset($id) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-content/plugins/wp-tools-gravity-forms-divi-module-premium/vendor/pimple/pimple/src/Pimple/Container.php on line 143

Deprecated: Return type of Gravity_Forms\Gravity_Forms\External_API\GF_API_Response::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-content/plugins/gravityforms/includes/external-api/class-gf-api-response.php on line 179

Deprecated: version_compare(): Passing null to parameter #1 ($version1) of type string is deprecated in /www/logichop_469/public/wp-content/plugins/gravityforms/includes/addon/class-gf-addon.php on line 5755

Deprecated: Return type of GF_Field::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-content/plugins/gravityforms/includes/fields/class-gf-field.php on line 93

Deprecated: Return type of GF_Field::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-content/plugins/gravityforms/includes/fields/class-gf-field.php on line 99

Deprecated: Return type of GF_Field::offsetSet($offset, $data) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-content/plugins/gravityforms/includes/fields/class-gf-field.php on line 108

Deprecated: Return type of GF_Field::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/logichop_469/public/wp-content/plugins/gravityforms/includes/fields/class-gf-field.php on line 117

Warning: The magic method AffiliateWP_Allow_Own_Referrals::__wakeup() must have public visibility in /www/logichop_469/public/wp-content/plugins/affiliatewp-allow-own-referrals/includes/class-affiliatewp-allow-own-referrals.php on line 131

Deprecated: Creation of dynamic property Cookie_Law_Info_Cli_Policy_Generator::$plugin_name is deprecated in /www/logichop_469/public/wp-content/plugins/cookie-law-info/admin/modules/cli-policy-generator/cli-policy-generator.php on line 176

Deprecated: Use of "self" in callables is deprecated in /www/logichop_469/public/wp-content/plugins/cookie-law-info/includes/class-cookie-law-info.php on line 606

Warning: Private methods cannot be final as they are never overridden by other classes in /www/logichop_469/public/wp-content/plugins/df-gravityforms-divi-plugin-premium/kirki/packages/kirki-framework/compatibility/src/Control.php on line 67

Warning: Private methods cannot be final as they are never overridden by other classes in /www/logichop_469/public/wp-content/plugins/df-gravityforms-divi-plugin-premium/kirki/packages/kirki-framework/compatibility/src/Control.php on line 103

Deprecated: Creation of dynamic property Kirki\Compatibility\Framework::$modules is deprecated in /www/logichop_469/public/wp-content/plugins/df-gravityforms-divi-plugin-premium/kirki/kirki.php on line 68

Deprecated: Optional parameter $text declared before required parameter $cart_item_key is implicitly treated as a required parameter in /www/logichop_469/public/wp-content/plugins/logichop-subscription-conduit/logichop-subscription-conduit.php on line 323

Deprecated: Creation of dynamic property WC_Sendinblue_Integration::$customizations is deprecated in /www/logichop_469/public/wp-content/plugins/woocommerce-sendinblue-newsletter-subscription/woocommerce-sendinblue.php on line 136

Deprecated: Creation of dynamic property WC_Sendinblue_Integration::$ws_subscribe_enable is deprecated in /www/logichop_469/public/wp-content/plugins/woocommerce-sendinblue-newsletter-subscription/woocommerce-sendinblue.php on line 153

Deprecated: Creation of dynamic property WC_Sendinblue_Integration::$ws_smtp_enable is deprecated in /www/logichop_469/public/wp-content/plugins/woocommerce-sendinblue-newsletter-subscription/woocommerce-sendinblue.php on line 154

Deprecated: Creation of dynamic property WC_Sendinblue_Integration::$ws_template_enable is deprecated in /www/logichop_469/public/wp-content/plugins/woocommerce-sendinblue-newsletter-subscription/woocommerce-sendinblue.php on line 156

Deprecated: Creation of dynamic property WC_Sendinblue_Integration::$ws_sms_enable is deprecated in /www/logichop_469/public/wp-content/plugins/woocommerce-sendinblue-newsletter-subscription/woocommerce-sendinblue.php on line 157

Deprecated: Creation of dynamic property WOO_SL_functions::$query_vars is deprecated in /www/logichop_469/public/wp-content/plugins/woocommerce-software-license/include/class.sl.functions.php on line 35

Deprecated: Creation of dynamic property WOO_SL::$licence is deprecated in /www/logichop_469/public/wp-content/plugins/woocommerce-software-license/include/class.sl.php on line 21

Deprecated: Creation of dynamic property WCS_Retry_Admin::$setting_id is deprecated in /www/logichop_469/public/wp-content/plugins/woocommerce-subscriptions/includes/payment-retry/admin/class-wcs-retry-admin.php on line 22

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /www/logichop_469/public/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/StoreApi/SchemaController.php on line 66

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /www/logichop_469/public/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/StoreApi/SchemaController.php on line 69

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /www/logichop_469/public/wp-content/plugins/woocommerce/packages/woocommerce-blocks/src/StoreApi/RoutesController.php on line 86

Deprecated: Creation of dynamic property wpdb::$payment_tokenmeta is deprecated in /www/logichop_469/public/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$order_itemmeta is deprecated in /www/logichop_469/public/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$wc_product_meta_lookup is deprecated in /www/logichop_469/public/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$wc_tax_rate_classes is deprecated in /www/logichop_469/public/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$wc_reserved_stock is deprecated in /www/logichop_469/public/wp-includes/wp-db.php on line 668

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /www/logichop_469/public/wp-content/plugins/woocommerce/includes/wc-core-functions.php on line 1705

Deprecated: Creation of dynamic property WooCommerce::$api is deprecated in /www/logichop_469/public/wp-content/plugins/woocommerce/includes/class-woocommerce.php on line 554

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /www/logichop_469/public/wp-content/plugins/woocommerce/src/Internal/DownloadPermissionsAdjuster.php on line 157

Deprecated: Creation of dynamic property Automattic\WooCommerce\Database\Migrations\CustomOrderTable\PostToOrderTableMigrator::$table_names is deprecated in /www/logichop_469/public/wp-content/plugins/woocommerce/src/Database/Migrations/CustomOrderTable/PostToOrderTableMigrator.php on line 25

Deprecated: Creation of dynamic property Automattic\WooCommerce\Database\Migrations\CustomOrderTable\PostToOrderAddressTableMigrator::$table_names is deprecated in /www/logichop_469/public/wp-content/plugins/woocommerce/src/Database/Migrations/CustomOrderTable/PostToOrderAddressTableMigrator.php on line 42

Deprecated: Creation of dynamic property Automattic\WooCommerce\Database\Migrations\CustomOrderTable\PostToOrderOpTableMigrator::$table_names is deprecated in /www/logichop_469/public/wp-content/plugins/woocommerce/src/Database/Migrations/CustomOrderTable/PostToOrderOpTableMigrator.php on line 26

Deprecated: Creation of dynamic property Automattic\WooCommerce\Database\Migrations\CustomOrderTable\PostMetaToOrderMetaMigrator::$table_names is deprecated in /www/logichop_469/public/wp-content/plugins/woocommerce/src/Database/Migrations/CustomOrderTable/PostMetaToOrderMetaMigrator.php on line 43
Logic Hop Tutorials Archives - Logic Hop Personalized Marketing For WordPress Tue, 13 Jul 2021 19:44:10 +0000 en-US hourly 1 https://wordpress.org/?v=5.8 https://stage.logichop.com/wp-content/uploads/2018/07/cropped-logic-hop-site-id-32x32.png Logic Hop Tutorials Archives - Logic Hop 32 32 Famous Five Minute Quick Start Guide https://stage.logichop.com/blog/famous-five-minute-quick-start-guide/ Tue, 13 Jul 2021 19:44:09 +0000 https://stage.logichop.com/?p=49861 What Is Content Personalization? If your website is like most online businesses, you have a variety of visitors–each with different pain points and priorities. It’s hard to build a website that speaks to each visitor equally well. Your headlines, calls-to-action, and copy is often one-size-fits-all. In practice, that means “one size doesn’t really fit anyone.” […]

The post Famous Five Minute Quick Start Guide appeared first on Logic Hop.

]]>
What Is Content Personalization?

If your website is like most online businesses, you have a variety of visitors–each with different pain points and priorities. It’s hard to build a website that speaks to each visitor equally well. Your headlines, calls-to-action, and copy is often one-size-fits-all. In practice, that means “one size doesn’t really fit anyone.”

Content personalization is built upon a simple concept: your website needs to speak directly to each visitor’s specific needs. To do that, we need to make our website change to match the needs of each type of visitor. That’s where Logic Hop comes in.

Businesses that have implemented content personalization have seen increases in conversion rates and engagement as high as 300%. That’s a big difference–one that any business can’t afford to pass up on.

Conditions: The Foundation of Personalization

Logic Hop is built around two principles. First, we identify our visitors based on things that we know about them. In Logic Hop, we call those things “Conditions.” Then, we update the content of our website to speak more directly to those visitors.

Creating Our First Condition

Logic Hop supports nearly 100 different conditions – ranging from geolocation (where your visitor is located) to your visitor’s behavior (what pages, categories, and tags they’ve viewed–and when), to URL parameters like UTM tags and more.

Just some of Logic Hop’s Personalization Conditions

Logic Hop even integrates with marketing platforms like Drip and ConvertKit, page builders like Divi, Elementor, and Beaver Builder, and Analytics platforms like Google Analytics to give you even more control over how you engage your visitors.

The conditions you use depend on your specific audience. In general, look for ways to identify the problems different groups of visitors are aiming to solve, and create conditions that identify those groups of visitors together.

In this example, we’ll use visitor’s geolocation to tell them apart. This types of personalization works best businesses that operate in a variety of locations, where different customers might have different needs. For example, a handyman business in New York and New Jersey might mostly see floor restoration work in New Jersey and plumbing-related jobs in New York. Creating conditions that let us recognize each of these visitors independently will help us speak to each audience directly and specifically.

Let’s create our first condition. First, install Logic Hop. Then, on the Logic Hop Dashboard in your site’s admin area, click “Create a Condition” to create your first condition.

The Logic Hop Condition Builder provides powerful tools to create and combine conditions to identify users. Our condition will help us identify visitors in New Jersey.

Enter a title for your condition at the top of the page. Then, under Conditional Statements, select the Geolocation condition category. Select Location as our type, then State/Region Code to empower us to filter by state. Finally, enter NJ as our state.

You can combine multiple criteria into a single condition by hitting the plus button at the bottom of an existing condition. For now, we’ll just use our single location-based condition.

Our completed condition

After you’ve created the condition, click “Publish.”

Using Our Condition to Personalize Content

Now that we’ve created our condition, let’s use it.

When deciding where to use your personalization, it’s important to remember that less is often more. Instead of adding personalization to every page of your website, focus on adding it to high-traffic and high-intent pages: for example, landing pages and content that ranks well in search engines, and on your home page.

The content that you personalize on each page will depend on your content and your audience. We typically focus on calls-to-action, and on copy that aims to specifically speak to our visitors’ problems and the solutions we can offer. Boilerplate, like information about our company, is usually left unpersonalized. Over time, you can monitor the conversion rates of your personalization for different audiences using Logic Hop Goals and Logic Hop’s Google Analytics integration to optimize your personalizations.

Logic Hop works with every major WordPress page builder, including Divi, Elementor, and Beaver Builder. For this example, we’ll use WordPress’ default editor, Gutenberg, and a very simple landing page. Let’s show a different heading on the page depending on whether the visitor matches our condition (they live in New Jersey).

Create a new page in WordPress. Then, add a Logic Hop Condition Block.

Adding a Condition Block

In the right-hand sidebar, select the Condition we created.

Selecting Our Condition

Then, inside of the condition block, add the content that you’d like to display to visitors who match this condition. For our example, we’ll add a simple heading that resonates well with the needs of our New Jersey customers. Condition blocks can contain any other block in WordPress–and can contain as many blocks as you’d like–enabling you to personalize rich sections of content.

This block will only appear for visitors who match our condition. We want to make sure that the page makes sense for other visitors, too, so let’s add a block that appears when the condition isn’t matched. Add a new Logic Hop Condition block. In the right-hand sidebar, select our same condition. This time, under the condition, select display when not met.

Finally, add your content to that block, too. Our editor helpfully annotates each Logic Hop Condition block to help us understand when content will be shown to each visitor.

Finally, click “Publish.” You’ve created your first piece of personalized content!

What Next?

Now you have the tools you need to get started with Logic Hop.

If you haven’t purchased Logic Hop yet, head on over to our pricing page to get started.

Our tutorials are a great next step to learn about more common personalization use-cases. We’re also happy to help you get started with the strategy behind personalization with our free personalization plans.

The post Famous Five Minute Quick Start Guide appeared first on Logic Hop.

]]>
User Segmentation With Goal Groups And Anchor Links Goals https://stage.logichop.com/blog/user-segmentation-with-goal-groups-and-anchor-links-goals/ Wed, 06 Nov 2019 15:11:30 +0000 https://stage.logichop.com/?p=38478 Overview How to segment users with Logic Hop goal groups using anchor link goals. Anchor Link Goal Code https://your-domain.com/?logichop_goal=your-goal-slug Reference Logic Hop Goals Goal Groups Anchor Link Goals Logic Hop Conditions Logic Hop Elementor Add-on

The post User Segmentation With Goal Groups And Anchor Links Goals appeared first on Logic Hop.

]]>

Overview

How to segment users with Logic Hop goal groups using anchor link goals.

Anchor Link Goal Code

https://your-domain.com/?logichop_goal=your-goal-slug

Reference

The post User Segmentation With Goal Groups And Anchor Links Goals appeared first on Logic Hop.

]]>
How to Create Dynamic Redirects Based on User Activity https://stage.logichop.com/blog/how-to-create-dynamic-redirects-based-on-user-activity/ Fri, 18 Oct 2019 15:02:33 +0000 https://stage.logichop.com/?p=38288 Overview How to create dynamic redirects based on user activity. Note: To make a form available for use in Logic Hop the Form Data setting must be set to Available in Logic Hop in the Logic Hop Settings menu of the form. Reference Logic Hop Redirects Logic Hop Conditions Logic Hop Gravity Forms Add-on

The post How to Create Dynamic Redirects Based on User Activity appeared first on Logic Hop.

]]>

Overview

How to create dynamic redirects based on user activity.

Note: To make a form available for use in Logic Hop the Form Data setting must be set to Available in Logic Hop in the Logic Hop Settings menu of the form.

Reference

The post How to Create Dynamic Redirects Based on User Activity appeared first on Logic Hop.

]]>
How to Remove Line Breaks When Using Logic Blocks in HTML Elements https://stage.logichop.com/blog/how-to-remove-line-breaks-when-using-logic-blocks-in-html-elements/ Wed, 16 Oct 2019 15:57:51 +0000 https://stage.logichop.com/?p=38278 Overview How to remove line breaks when using Logic Blocks in HTML elements. CSS Code .logichop-visible { display: inline !important; } Reference Logic Blocks Logic Hop Conditions

The post How to Remove Line Breaks When Using Logic Blocks in HTML Elements appeared first on Logic Hop.

]]>

Overview

How to remove line breaks when using Logic Blocks in HTML elements.

CSS Code

.logichop-visible {
    display: inline !important;
}

Reference

The post How to Remove Line Breaks When Using Logic Blocks in HTML Elements appeared first on Logic Hop.

]]>
How to Set Your IP Address During Local Development https://stage.logichop.com/blog/how-to-set-your-ip-address-during-local-development/ Tue, 15 Oct 2019 10:44:32 +0000 https://stage.logichop.com/?p=38268 It’s very common for developers to work locally when developing WordPress projects. It’s also common that when testing local projects your IP address reflects that of your local computer. Logic Hop uses visitors’ IP addresses in a variety of ways and it can be important to test with a valid or specific IP address – Especially […]

The post How to Set Your IP Address During Local Development appeared first on Logic Hop.

]]>

It’s very common for developers to work locally when developing WordPress projects. It’s also common that when testing local projects your IP address reflects that of your local computer.

Logic Hop uses visitors’ IP addresses in a variety of ways and it can be important to test with a valid or specific IP address – Especially when working with geolocation.

Override Your IP Address

To override the IP address Logic Hop uses you’ll need to implement the logichop_get_client_ip filter as such:

Set a Specific IP Address

function my_override_ip ( $client_IP ) {

  return '72.85.30.42';
}
add_filter( 'logichop_get_client_ip', 'my_override_ip' );

Just swap out 72.85.30.42 with the valid IP address of your choice.

Note: The logichop_get_client_ip filter only accepts valid IP addresses.

Set to the HTTP_X_FORWARDED_FOR IP Address

function my_override_ip ( $client_IP ) {

  if ( array_key_exists( 'HTTP_X_FORWARDED_FOR', $_SERVER ) ) {
    $ip = explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] );
    $client_IP = $ip[0];
  }

  return $client_IP;
}
add_filter( 'logichop_get_client_ip', 'my_override_ip' );

Using the HTTP_X_FORWARDED_FOR method will allow you to use a browser extension to specify a specific IP address before visiting your local development environment.

Note: Logic Hop only sets your IP address when starting a new session, such as visiting your site in a new incognito window.

Reference

The post How to Set Your IP Address During Local Development appeared first on Logic Hop.

]]>
How to Use a WP Language Translation Plugin to Go Multilingual with Content Personalization https://stage.logichop.com/blog/how-to-use-a-wp-language-translation-plugin-to-go-multilingual-with-content-personalization/ Mon, 14 Oct 2019 12:18:10 +0000 https://stage.logichop.com/?p=38209 Logic Hop helps you personalize your WordPress site to make sure the messages you display more closely match each individual person visiting your website. A WP language translation plugin can take that approach one step further and help you display those personalized messages in visitors’ preferred languages. So now you’re able to not just personalize […]

The post How to Use a WP Language Translation Plugin to Go Multilingual with Content Personalization appeared first on Logic Hop.

]]>

Logic Hop helps you personalize your WordPress site to make sure the messages you display more closely match each individual person visiting your website.

A WP language translation plugin can take that approach one step further and help you display those personalized messages in visitors’ preferred languages. So now you’re able to not just personalize the message that you display, but also personalize the language that you use for that personalized message.

Beyond adding a whole other level of personalization to your WordPress site, there are also some other big benefits to creating a multilingual WordPress website. And with the right WP language translation plugin, it’s really not that difficult to translate your entire WordPress site.

In this post, you’ll learn more about what the benefits of going multilingual are, as well as how to translate your WordPress site and any personalized content that you’ve created with Logic Hop.

The Two Big Benefits to a WP Language Translation Plugin

Before we get to the tutorial, let’s dig into the two big benefits to using a WP language translation plugin to translate your WordPress site into different languages. Those benefits are…

  • Improved user experience
  • Improved search engine optimization and marketing

1. Create a Better, More Personalized User Experience

The basic premise of Logic Hop is that you can use personalization to improve your website’s user experience and boost your conversion rates.

Well, the same general idea applies to using a WP language translation plugin to offer your WordPress site in different languages.

As you’d expect, most people prefer to visit a website that’s available in their own language. According to a Gallup survey commissioned by the EU, 90% of respondents prefer to visit a website in their native language when available and ~45% just flat out won’t visit a website in a language other than their own. These trends hold true for eCommerce, where that same Gallup survey also found that 42% of respondents never buy products from websites in different languages.

So by combining Logic Hop with a WP language translation plugin, you’re able to offer more relevant content in the language that your visitors want to use.

More importantly, creating personalized language experiences isn’t just for global websites — it’s quite possible to have a multilingual audience even within a small geographic area. For example, in California alone, the US Census Bureau estimates that 44.6% of people age 5+ speak a language other than English when at home, and that number is 21.6% for the USA as a whole.

2. Reach More Visitors in Google With Multilingual SEO

Beyond helping you further personalize your website, a WP language translation plugin can also help you reach more visitors to deliver your personalized content to by helping you implement multilingual SEO.

If you have an SEO strategy in place for your website, you’re probably already targeting keywords in your site’s default language.

But here’s the thing:

There are also tons of people searching for those exact same keywords…just in a different language.

For example, let’s say you have a vacuum cleaner review website. While you might already be reaching people searching for “best vacuum cleaner” in English, you’re missing out on a whole bunch of people searching for the same phrase — “mejor aspiradora” — in Spanish.

To be able to benefit from multilingual SEO, make sure you use one of the WordPress translation plugins that create an indexable, SEO-friendly version of your site for each language. Typically, you’ll want to use either a subfolder or subdomain for each language. For example, yoursite.com/fr/content or fr.yoursite.com/content.

Once you land a new visitor via multilingual SEO, Logic Hop can start working its magic to build a profile and serve that visitor personalized content.

Weglot Helps You Create Personalized Language Experiences With Logic Hop

While there are a lot of WordPress multilingual plugins out there, we’re going to use the Weglot WP language translation plugin for this tutorial because it fully integrates with Logic Hop right out of the box. That is, you won’t have to use any tweaks or workarounds to translate your personalized content.

The Weglot WP language translation plugin also works with 100% of other WordPress themes and plugins right away, so it just generally makes it simple to comprehensively translate your WordPress site.

Weglot helps you quickly get up and running by using machine translation to automatically translate your site right away, but you can always go back and manually refine your translations (which we’ll demonstrate).

How to Translate Your WordPress Website and Logic Hop With Weglot

Now that you know the “why”, let’s dig into how to personalize your website’s content and language using the Weglot WP language translation plugin and Logic Hop.

To demo the full multilingual functionality, we’ll start off by creating some personalized content with Logic Hop in the form of a notification bar. Then, you’ll learn how to translate that personalized content, as well as the rest of your site’s content, using the aforementioned Weglot plugin.

While we’ll be focusing on content from Logic Hop, the translation method that you learn below will work for 100% of your site’s content. So whether you have a WooCommerce eCommerce store, content you’ve built with a page builder WordPress plugin, a simple blog, a site with custom post types, or anything else — you’ll be able to create a multilingual site by following this tutorial.

Here’s your step-by-step WP language translation guide…

1. Create Personalized Content With Logic Hop

To demo how Weglot works with Logic Hop, we’ll create a Logic Bar notification bar that triggers when a UTM parameter is passed in the URL.

If you have Logic Hop installed and activated, you can set this up by heading to Logic Hop > Logic Bars > Add New.

Then, you can add your content and styling and publish your bar when you’re finished:

Translated Logic Bar

You can see that the text is “Weglot and Logic Hop work together perfectly”. In the next steps, you’ll be able to translate this text, along with all of the other content from your WordPress site.

2. Activate and Configure Weglot Plugin

To get started with your translations, you’ll need to register for a Weglot account and install and activate the Weglot WordPress plugin from WordPress.org.

Once you’ve done those two things, go to the new Weglot settings page in your backend WordPress dashboard and:

  • Add your API key to the plugin’s settings. You can find your Weglot API key in your dashboard at the Weglot website.
  • Choose your site’s original language. This is the default language that your content currently exists in. For example, English.
  • Choose your destination language(s). This is the new language (or languages) into which you want to translate your website’s content. For example, French.

3. Configure Your Front-End Language Switcher (Or Set Up Automatic Redirects)

By default, Weglot adds a front-end language switcher to the bottom-right corner of your website that lets visitors choose between all of the available languages:

Front-end language switcher

If you’d like, you can customize the looks and location of this language switcher.

  • First, you can place it in different locations:
  • Dropdown menu item (Appearance > Menus)
  • Widget (Appearance > Widgets)
  • Shortcode (Any text editor on your site)
  • Source code (By adding a
    to the source code of any HTML page)

You’ll also get new settings in the Weglot area of your WordPress admin dashboard that let you control the language switcher’s style. For example, you can turn country flags on or off and choose between using the full language name or just the two-letter country code:

Weglot country flags

In addition to letting visitors manually use the language switcher, Weglot can also help you automatically redirect visitors to their local language based on their browser settings.

This feature works especially well when you pair it with Logic Hop’s ability to serve personalized content based on geolocation. By pairing the two, you can automatically serve content that’s relevant to your visitor’s location and in your visitor’s local language. Talk about personalization, right?

4. Manually Refine Translations (If Needed)

When Weglot initially translates your site, Weglot uses automatic machine translation (kind of like Google Translate).

However, you have the ability to manually refine those automatic translations as needed, without the need to work directly with language files.

To do this, you can use the Weglot cloud dashboard, which gives you two translation management interfaces.

Both interfaces let you manage 100% of your site’s translations and both automatically sync any changes that you make to your live WordPress site. The only difference is in the actual interface that you use to work with translations.

Translations List

First, you can use the backend translations list interface to manage your translations a lot like you would work with a PO file. You’ll see the original language version on the left and the translated version on the right:

Translation editor pop-up

You can use the search and filter options to find specific strings and click and type to edit them. If you’d like, you can also outsource your translations to professional translation services if you’d prefer to have someone else handle your human translations.

If you want to translate Logic Hop content, you’ll want to use this translation list interface most of the time as it makes it easier to find your personalized content.

Visual Editor

Second, you can use the visual editor to manage your translations on a live preview of your website.

To edit your translations, all you do is hover over the string that you want to translate and click the green pencil icon:

That will open a popup where you can edit your translation:

Edit your translation

Get Started With a WP Language Translation Plugin Today

Content personalization is one of the best ways to improve the user experience at your WordPress website and boost your conversion rates.

Logic Hop helps you display different content based on the person who’s viewing it, and then the Weglot WP language translation plugin helps you translate that content into one or more different languages.

By creating a multilingual website, you’re able to:

  • Further enhance your user experience by letting your users choose their preferred languages, which is what ~90% of people prefer according to the Gallup survey.
  • Start reaching new visitors in the first place by harnessing the power of multilingual SEO to rank your content in Google for new keywords in different languages.

Get started with Logic Hop and Weglot today to harness the power of personalization and translation to create a better WordPress website.

The post How to Use a WP Language Translation Plugin to Go Multilingual with Content Personalization appeared first on Logic Hop.

]]>
How to add Personalization to WordPress Templates & Themes https://stage.logichop.com/blog/how-to-add-personalization-to-wordpress-templates-themes/ Thu, 10 Oct 2019 23:01:53 +0000 https://stage.logichop.com/?p=38175 Overview A step-by-step tutorial on how to add content personalization to WordPress templates and themes using PHP with Logic Hop. Note: This technique will work with both cached and non-cached websites. Sample Code WordPress do_shortcode() Function <?php echo do_shortcode( '## YOUR LOGIC BLOCK SHORTCODE HERE ##' ); ?> WordPress the_content Filter <?php echo apply_filters( 'the_content', […]

The post How to add Personalization to WordPress Templates & Themes appeared first on Logic Hop.

]]>

Overview

A step-by-step tutorial on how to add content personalization to WordPress templates and themes using PHP with Logic Hop.

Note: This technique will work with both cached and non-cached websites.

Sample Code

WordPress do_shortcode() Function

<?php echo do_shortcode( '## YOUR LOGIC BLOCK SHORTCODE HERE ##' ); ?>

WordPress the_content Filter

<?php echo apply_filters( 'the_content', '## YOUR LOGIC TAGS & CONTENT HERE ##' ); ?>

PHP Output Buffer Functions

<?php ob_start(); ?>
  ## YOUR LOGIC TAGS & CONTENT HERE ##
<?php $content = ob_get_contents(); ob_end_clean(); ?>
<?php echo apply_filters( 'the_content', $content ); ?>

Reference

The post How to add Personalization to WordPress Templates & Themes appeared first on Logic Hop.

]]>
How to Create Advanced Conditional Goals With Gravity Forms https://stage.logichop.com/blog/how-to-create-advanced-conditional-goals-with-gravity-forms/ Wed, 09 Oct 2019 19:30:11 +0000 https://stage.logichop.com/?p=38162 Overview How to create advanced conditional goals with Gravity Forms and Logic Hop for personalizing WordPress. Note: The HTML Content Areas in Gravity Forms are used to determine if the user is eligible or ineligible. You can leave the content areas empty if you’d prefer to not have a message displayed before the user submits […]

The post How to Create Advanced Conditional Goals With Gravity Forms appeared first on Logic Hop.

]]>

Overview

How to create advanced conditional goals with Gravity Forms and Logic Hop for personalizing WordPress.

Note: The HTML Content Areas in Gravity Forms are used to determine if the user is eligible or ineligible. You can leave the content areas empty if you’d prefer to not have a message displayed before the user submits the form.

Javascript Code

<script>
  jQuery( document ).ready( function () {
    jQuery( document ).on( 'gform_post_render', function ( event, form_id, current_page ) {

      var submitted = false;

      if ( jQuery( '.eligible' ).is( ':visible' ) ) {

        console.log( 'user-is-eligible' );
        logichop_goal( 'user-is-eligible' );
        submitted = true;
      }

      if ( jQuery( '.ineligible' ).is( ':visible' ) ) {

        console.log( 'user-is-ineligible' );
        logichop_goal_delete( 'user-is-eligible' );
        submitted = true;
      }

      if ( submitted ) {

        console.log( 'submitted' );
        window.location.href = '/member-validator/thank-you';
      }

    } );
  } );
</script>

Reference

The post How to Create Advanced Conditional Goals With Gravity Forms appeared first on Logic Hop.

]]>
Landing Page CTA Conditions & The “No Conditions Met” Default https://stage.logichop.com/blog/landing-page-cta-conditions-the-no-conditions-met-default/ Mon, 07 Oct 2019 16:52:48 +0000 https://stage.logichop.com/?p=38149 Overview How to create landing page CTA conditions and use the default No Conditions Met condition with Elementor (and any other page builder). Reference Logic Hop Conditions Logic Hop Elementor Add-on

The post Landing Page CTA Conditions & The “No Conditions Met” Default appeared first on Logic Hop.

]]>

Overview

How to create landing page CTA conditions and use the default No Conditions Met condition with Elementor (and any other page builder).

Reference

The post Landing Page CTA Conditions & The “No Conditions Met” Default appeared first on Logic Hop.

]]>
Use Query Strings for Content Personalization https://stage.logichop.com/blog/use-query-strings-for-content-personalization/ Wed, 02 Oct 2019 14:10:44 +0000 https://stage.logichop.com/?p=38053 Overview How to use query strings and UTM codes for content personalization. Reference Logic Hop Conditions Logic Tags

The post Use Query Strings for Content Personalization appeared first on Logic Hop.

]]>

Overview

How to use query strings and UTM codes for content personalization.

Reference

The post Use Query Strings for Content Personalization appeared first on Logic Hop.

]]>