Brand Assets

Thanks for your interest in affiliating with Popup Maker

Below are a few guidelines for using Popup Maker’s brand resources, please take a moment to familiarize yourself with them. You can download individual assets in each section, or you can download everything all at once below.

Download All Assets

Our Name is Popup Maker

Popup Maker is two words. Always capitalize the P and the M.

Brand Name

PopupMaker

Not like this.

popup maker

Not like this.

POPUP MAKER

Not like this.

popupmaker

Not like this.

Popup Maker Colors

These are Popup Maker’s brand colors – copy the color codes below.

Brand Colors

Primary

#1dbe61

Light

#21db6f

Base

#1dbe61

Popup Maker Logo

These are Popup Maker’s marks & logos – copy or download in PNG/SVG format.

Logos & Marks

Not yet an affiliate?

Become an Affiliate
Earn commission when you recommend Popup Maker to your friends, fans & clients.
Sign Up

Popup Maker Historical Branding

These are Popup Maker’s past marks, logos & colors. Here for fun and archives.

Historical Marks, Logos & Colors
Popup Maker Logo - Archived
Popup Maker Logo - Archived
Popup Maker - Mark - Archived
Popup Maker - Mark - Archived

Primary

#9ab927

Light

#a8cb29

Base

#2d2d2d

Gray 1

#626262

Gray 2

#cacaca

Gray 3

#dfdfdf
View Categories

Integrating Form Provider with Popup Maker

Example based on Contact Form 7. #

PHP integration registration. #

add_filter( 'pum_integrations', function ( $integrations = [] ) {
	return array_merge( $integrations, [
		// key should match the key defined in your PHP class.
		'contactform7'   => new PUM_Integration_Form_ContactForm7,
	] );
} );

PHP integration class #

<?php
/*******************************************************************************
 * Copyright (c) 2020, WP Popup Maker
 ******************************************************************************/

class PUM_Integration_Form_ContactForm7 extends PUM_Abstract_Integration_Form {

	/**
	 * Unique key identifier for this provider.
	 *
	 * @var string
	 */
	public $key = 'contactform7';

	/**
	 * Only used to hook in a custom action for non AJAX based submissions.
	 *
	 * Could be used for other initiations as well where needed.
	 */
	public function __construct() {
		add_action( 'wpcf7_mail_sent', array( $this, 'on_success' ), 1 );
	}

	/**
	 * Text label that will be used throughout the various options screens.
	 *
	 * @return string
	 */
	public function label() {
		return __( 'Contact Form 7' );
	}

	/**
	 * Should return true when the required form plugin is active.
	 *
	 * @return bool
	 */
	public function enabled() {
		return class_exists( 'WPCF7' ) || ( defined( 'WPCF7_VERSION' ) && WPCF7_VERSION );
	}

	/**
	 * Return a useable array of all forms from this provider.
	 *
	 * @return array
	 */
	public function get_forms() {
		return get_posts( [
			'post_type'      => 'wpcf7_contact_form',
			'posts_per_page' => - 1,
		] );
	}

	/**
	 * Return a single form by ID.
	 *
	 * @param string $id
	 *
	 * @return mixed
	 */
	public function get_form( $id ) {
		return get_post( $id );
	}

	/**
	 * Returns an array of options for a select list.
	 *
	 * Should be in the format of $formId => $formLabel
	 *
	 * @return array
	 */
	public function get_form_selectlist() {
		$form_selectlist = [];

		$forms = $this->get_forms();

		foreach ( $forms as $form ) {
			$form_selectlist[ $form->ID ] = $form->post_title;
		}

		return $form_selectlist;
	}

	/**
	 * Hooks in a success functions specific to this provider for non AJAX submission handling.
	 *
	 * @param WPCF7_ContactForm $cfdata
	 */
	public function on_success( $cfdata ) {
		/**
		 * @see pum_integrated_form_submission
		 */
		pum_integrated_form_submission( [
			'popup_id'      => isset( $_REQUEST['pum_form_popup_id'] ) && absint( $_REQUEST['pum_form_popup_id'] ) > 0 ? absint( $_REQUEST['pum_form_popup_id'] ) : false,
			'form_provider' => $this->key,
			'form_id'       => $cfdata->id(),
		] );
	}

	/**
	 * Load a custom script file to handle AJAX based submissions or other integrations with Popup Maker frontend.
	 *
	 * @param array $js
	 *
	 * @return array
	 */
	public function custom_scripts( $js = [] ) {
		$js[ $this->key ] = [
			// Path to a file that will be bundled with our own Assets when required.
			'content'  => file_get_contents( Popup_Maker::$DIR . 'assets/js/pum-integration-contactform7.js' ),
			'priority' => 8,
		];

		return $js;
	}

	/**
	 * Load custom styles for hacking some elements specifically inside popups, such as datepickers.
	 *
	 * @param array $css
	 *
	 * @return array
	 */
	public function custom_styles( $css = [] ) {
		$css[ $this->key ] = [
			'content'  => ".datepicker-container { z-index: 2000000000 !important; }n",
			'priority' => 8, // Always use priority 8 for the best results.
		];

		return $css;
	}
}

JavaScript file contents #

(function ($) {
	var formProvider = 'contactform7';

	$(document).on('wpcf7:mailsent', '.wpcf7', function (event, details) {
		const $form = $(this),
			formId = $form.find('input[name="_wpcf7"]').val(),
			// Converts string like wpcf7-f190-p2-o11 and reduces it to simply 11, the last o11 is the instance ID.
			// More accurate way of doing it in case things change in the future, this version filters out all but the o param.
			// formInstanceId = .split('-').filter((string) => string.indexOf('o') === 0)[0].replace('o','');
			// Simpler version that simply splits and pops the last item in the array. This requires it always be the last.
			formInstanceId = $form.attr('id').split('-').pop().replace('o', '');

		// All the magic happens here.
		window.PUM.integrations.formSubmission($form, {
			formProvider: formProvider
			formId: formId,
			formInstanceId: formInstanceId
		});
	});
}(jQuery));

Leave the first comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.