Commit inicial - WordPress Análisis de Precios Unitarios

- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2025-11-03 21:04:30 -06:00
commit a22573bf0b
24068 changed files with 4993111 additions and 0 deletions

View File

@@ -0,0 +1,602 @@
<?php
/**
* Thrive Themes - https://thrivethemes.com
*
* @package thrive-ultimatum
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // No direct access
}
/**
* Class Tve_Ult_Admin_AjaxController
*
* Ajax controller to handle admin ajax requests
* Specially built for backbone models
*/
class Tve_Ult_Admin_AjaxController {
/**
* @var Tve_Ult_Admin_AjaxController $instance
*/
protected static $instance;
/**
* Tve_Ult_Admin_AjaxController constructor.
* Protected constructor because we want to use it as singleton
*/
protected function __construct() {
}
/**
* Sets the request's header with server protocol and status
* Sets the request's body with specified $message
*
* @param $message
* @param string $status
*/
protected function error( $message, $status = '404 Not Found' ) {
header( $_SERVER['SERVER_PROTOCOL'] . ' ' . $status );
echo $message;
wp_die();
}
/**
* Returns the params from $_POST or $_REQUEST
*
* @param $key
* @param null $default
*
* @return mixed|null|$default
*/
protected function param( $key, $default = null ) {
return isset( $_POST[ $key ] ) ? $_POST[ $key ] : ( isset( $_REQUEST[ $key ] ) ? $_REQUEST[ $key ] : $default );
}
/**
* Gets the SingleTone's instance
*
* @return Tve_Ult_Admin_AjaxController
*/
public static function instance() {
if ( empty( self::$instance ) ) {
self::$instance = new Tve_Ult_Admin_AjaxController();
}
return self::$instance;
}
/**
* Entry-point for each ajax request
* This should dispatch the request to the appropriate method based on the "route" parameter
*
* @return array|object
*/
public function handle() {
/** Check if the user still has the right to use the plugin */
if ( ! TU_Product::has_access() ) {
$this->error( __( 'You do not have this capability anymore', 'thrive-ult') );
}
if ( ! check_ajax_referer( 'tve_ult_admin_ajax_request', '_nonce', false ) ) {
$this->error( sprintf( __( 'Invalid request', 'thrive-ult') ) );
}
$route = $this->param( 'route' );
$route = preg_replace( '#([^a-zA-Z0-9-])#', '', $route );
$method_name = $route . 'Action';
if ( ! method_exists( $this, $method_name ) ) {
$this->error( sprintf( __( 'Method %s not implemented', 'thrive-ult'), $method_name ) );
}
return $this->{$method_name}();
}
/**
* Show the Display Settings popup for a campaign
*/
protected function displaySettingsCampaignAction() {
$memory_limit = (int) ini_get( 'memory_limit' );
if ( $memory_limit < 256 ) {
ini_set( 'memory_limit', '256M' );
}
require_once TVE_Ult_Const::plugin_path() . 'inc/classes/display_settings/class-thrive-display-settings-manager.php';
$display_settings_manager = new Thrive_Ult_Display_Settings_Manager( $this->param( 'campaign_id' ) );
return $display_settings_manager->get_popup_data();
}
/**
* Save display settings for a Campaign
*
* @return array
*/
protected function displaySettingsSaveAction() {
require_once TVE_Ult_Const::plugin_path() . 'inc/classes/display_settings/class-thrive-display-settings-manager.php';
$display_settings_manager = new Thrive_Ult_Display_Settings_Manager( $this->param( 'campaign_id' ) );
$result = $display_settings_manager->save_options();
/**
* check if there is a knonwn cache plugin installed and clear the cache if that's the case
*/
$cache_plugin = tve_dash_detect_cache_plugin();
if ( $cache_plugin ) {
tve_dash_cache_plugin_clear( $cache_plugin );
}
return array(
'success' => $result === true ? true : false,
'message' => $result !== true ? 'Error while saving: ' . $result : '',
);
}
/**
* Save a template containing display settings
*
* @return array
*/
public function displaySettingsSaveTemplateAction() {
require_once TVE_Ult_Const::plugin_path() . 'inc/classes/display_settings/class-thrive-display-settings-manager.php';
$display_settings_manager = new Thrive_Ult_Display_Settings_Manager();
$result = $display_settings_manager->save_template();
return array(
'success' => $result === true ? true : false,
'message' => $result !== true ? sprintf( __( 'Error while saving: %s', 'thrive-ult'), $result ) : '',
'templates' => $result === true ? apply_filters( 'thrive_display_options_get_templates', array() ) : array(),
);
}
/**
* Load a saved Campaign Display Settings template
*/
public function displaySettingsLoadTemplateAction() {
require_once TVE_Ult_Const::plugin_path() . 'inc/classes/display_settings/class-thrive-display-settings-manager.php';
$display_settings_manager = new Thrive_Ult_Display_Settings_Manager();
$display_settings_manager->load_template();
}
/**
* Performs actions for campaigns based on request's method and model
* Dies with error if the operation was not executed
*
* @return mixed
*/
protected function campaignsAction() {
$model = json_decode( file_get_contents( 'php://input' ), true );
$method = empty( $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ) ? 'GET' : $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'];
if ( ( $custom = $this->param( 'custom' ) ) ) {
switch ( $custom ) {
case 'chart_data':
return tve_ult_get_chart_data( $this->param( 'ID' ) );
break;
case 'update_order':
$ordered = $this->param( 'new_order', array() );
foreach ( $ordered as $post_id => $order ) {
update_post_meta( $post_id, TVE_Ult_Const::META_NAME_FOR_CAMPAIGN_ORDER, $order );
}
return $ordered;
break;
default:
return array();
}
}
switch ( $method ) {
case 'POST':
case 'PUT':
case 'PATCH':
if ( ! ( $item = tve_ult_save_campaign( $model ) ) ) {
$this->error( __( 'Could not save', 'thrive-ult') );
}
return $item;
break;
case 'DELETE':
if ( ! ( $deleted = tve_ult_delete_campaign( $this->param( 'ID' ), true ) ) ) {
$this->error( __( 'Could not delete', 'thrive-ult') );
}
return $deleted;
break;
case 'GET':
$campaign = tve_ult_get_campaign( $this->param( 'ID', 0 ), array(
'get_designs' => true,
'designs_hierarchy' => true,
'get_events' => true,
) );
if ( $campaign === false ) {
$this->error( __( 'Item not found', 'thrive-ult') );
}
/* we also need to load the display settings for the campaign - to show the summary */
require_once TVE_Ult_Const::plugin_path() . 'inc/classes/display_settings/class-thrive-display-settings-manager.php';
$display_settings_manager = new Thrive_Ult_Display_Settings_Manager( $this->param( 'ID' ) );
$_data = $display_settings_manager->get_popup_data();
$campaign->display_settings = $_data['hangers'];
$campaign->display_settings_tpl = $_data['savedTemplates'];
$timeline = new TU_Timeline( $campaign );
$timeline->prepare_events();
return $campaign;
break;
}
}
/**
* Save the Date Settings
*
* @return array|null
*/
protected function dateSettingsAction() {
$model = json_decode( file_get_contents( 'php://input' ), true );
$method = empty( $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ) ? 'GET' : $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'];
switch ( $method ) {
case 'POST':
case 'PUT':
case 'PATCH':
if ( ! tve_ult_save_date_settings( $model ) ) {
$this->error( __( 'Could not save', 'thrive-ult') );
}
return [
'now' => tve_ult_current_time( 'Y-m-d H:i' ),
];
break;
case 'DELETE':
case 'GET':
default:
break;
}
}
/**
* Performs actions for designs based on request's method and model
* Dies with error if the operation was not executed
*
* @return mixed
*/
public function designsAction() {
$model = json_decode( file_get_contents( 'php://input' ), true );
$method = empty( $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ) ? 'GET' : $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'];
switch ( $method ) {
case 'POST':
case 'PUT':
case 'PATCH':
if ( ! ( $item = tve_ult_save_design( $model ) ) ) {
$this->error( __( 'Could not save', 'thrive-ult') );
}
return $item;
break;
case 'DELETE':
if ( ! ( $deleted = tve_ult_delete_design( (int) $this->param( 'ID' ) ) ) ) {
$this->error( __( 'Could not delete design', 'thrive-ult') );
}
return $deleted;
break;
case 'GET':
if ( ! ( $item = tve_ult_get_design( (int) $this->param( 'ID' ) ) ) ) {
$this->error( __( 'Item not found', 'thrive-ult') );
}
return $item;
break;
}
}
/**
* Fetch the list of designs. If the request contains a get_states key, it will return the full list of designs for a campaign( including child states )
*
* @return array
*/
public function designListAction() {
$data = json_decode( file_get_contents( 'php://input' ), true );
$method = empty( $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ) ? 'GET' : $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'];
if ( ! ( $campaign_id = $this->param( 'campaign_id' ) ) ) {
$this->error( __( 'Missing Campaign', 'thrive-ult') );
}
switch ( $method ) {
case 'GET':
if ( $this->param( 'get_states' ) ) {
$designs = tve_ult_get_designs_hierarchy( $campaign_id );
} else {
$designs = tve_ult_get_designs( $campaign_id );
}
return $designs;
default:
return array();
}
}
/**
* Entry point for actions
* Dies with error if the operation was not executed
*
* @return array
*/
public function actionsAction() {
$model = json_decode( file_get_contents( 'php://input' ), true );
$method = empty( $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ) ? 'GET' : $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'];
switch ( $method ) {
case 'GET':
/** gets the options html for an action */
if ( $this->param( 'custom' ) === 'options' ) {
$html = TU_Event_Action::getInstance()->get_options_html( $this->param( 'action_model' ) );
return array(
'html' => $html,
);
}
break;
}
}
/**
* Entry point for campaign status actions
* Dies with error if the operation was not executed
*
* @return array
*/
public function campaignStatusAction() {
$item = tve_ult_save_campaign_status( $this->param( 'ID' ), $this->param( 'status' ) );
if ( ! $item['success'] ) {
$error_list = array(
'invalid_call' => __( 'Invalid call', 'thrive-ult'),
'invalid_id' => __( 'The campaign ID is invalid', 'thrive-ult'),
'settings_error' => __( "You cannot start this campaign until you've setup the campaign type and duration", 'thrive-ult'),
'design_error' => __( 'You cannot start this campaign until you add at least a design', 'thrive-ult'),
'design_tpl_error' => __( 'You cannot start this campaign until you have at least one design that has a template selected', 'thrive-ult'),
'display_settings_error' => __( 'You cannot start this campaign before setting up the display options', 'thrive-ult'),
'evergreen_linked' => __( 'You cannot start this campaign until you setup a start trigger type', 'thrive-ult'),
'end_date_in_past' => __( 'You cannot start this campaign because the end date is in the past', 'thrive-ult'),
'lockdown' => __( 'You cannot start this campaign before setting up the lockdown options', 'thrive-ult'),
'invalid_trigger' => __( 'You cannot start this campaign with an invalid or empty trigger', 'thrive-ult'),
'invalid_leads_trigger' => __( 'You cannot start this campaign with a Leads Conversion as a trigger when Thrive Leads is deactivated', 'thrive-ult'),
);
$this->error( $error_list[ $item['message'] ], 422 );
}
return $item['data'];
}
/**
* Entry point for events
* Dies with error if the operation was not executed
*
* @return mixed
*/
public function eventsAction() {
$model = json_decode( file_get_contents( 'php://input' ), true );
$method = empty( $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ) ? 'GET' : $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'];
switch ( $method ) {
case 'PATCH':
case 'PUT':
case 'POST':
if ( ! ( $item = tve_ult_save_event( $model ) ) ) {
$this->error( __( 'Could not save', 'thrive-ult') );
}
return $item;
break;
case 'DELETE':
if ( ! ( $deleted = tve_ult_delete_event( (int) $this->param( 'ID' ) ) ) ) {
$this->error( __( 'Could not delete', 'thrive-ult') );
}
return $deleted;
break;
case 'GET':
$campaign = tve_ult_get_campaign( $this->param( 'campaign_id', 0 ), array(
'get_designs' => false,
'get_events' => true,
) );
if ( $campaign === false ) {
$this->error( __( 'Item not found', 'thrive-ult') );
}
$timeline = new TU_Timeline( $campaign );
$timeline->prepare_events();
return $campaign->timeline;
break;
}
}
/**
* Does a progressive search based on a string
*
* @return mixed
*/
public function progressiveGetPostsAction() {
$s = wp_unslash( $this->param( 'term' ) );
$s = trim( $s );
$all_post_types = get_post_types( array( 'public' => true ) );
$exception_list = apply_filters( 'tvu_post_types_blacklist', array(
'attachment',
'focus_area',
'thrive_optin',
'wysijap',
'product_variation',
'revision',
'nav_menu_item',
'tve_lead_shortcode',
'tve_lead_1c_signup',
'tve_form_type',
'tve_lead_group',
'tcb_lightbox',
'tve_lead_2s_lightbox',
'tve_ult_campaign',
'tvo_testimonials',
'reply',
'tva_lesson',
'tva_chapter',
'tva_module',
'tcb_symbol',
'tcb_lightbox',
) );
$post_types = array_diff( $all_post_types, $exception_list );
add_filter( 'posts_search', 'tve_ult_search_by_title' , 500, 2 );
$args = array(
'post_type' => $post_types,
'post_status' => 'publish',
's' => $s,
'numberposts' => 20,
'suppress_filters' => false
);
$results = array();
foreach ( get_posts( $args ) as $post ) {
$post_type_obj = get_post_type_object( $post->post_type );
if ( trim( $post->post_title ) ) {
$results [] = array(
'id' => $post->ID,
'label' => $post->post_title,
'type' => $post_type_obj->labels->singular_name,
);
}
}
return $results;
}
/**
* Returns post title id and url on a post fetched by id
*
* @return bool
*/
public function getPostByIDAction() {
$post = get_post( (int) $this->param( 'id' ) );
if ( empty( $post ) ) {
return false;
}
$result['id'] = $post->ID;
$result['title'] = $post->post_title;
$result['url'] = get_permalink( $post->ID );
if ( isset( $result ) ) {
return $result;
}
return false;
}
public function settingsAction() {
if ( ( $custom = $this->param( 'custom' ) ) ) {
switch ( $custom ) {
case 'purge_cache':
tve_ult_purge_cache();
return tve_ult_get_campaigns( array( 'get_logs' => true ) );
break;
default:
return array();
}
}
}
/**
* searches a tag by keywords, used in Display settings
*/
public function tagSearchAction() {
if ( ! $this->param( 'tax' ) ) {
wp_die( 0 );
}
$taxonomy = sanitize_key( $this->param( 'tax' ) );
$tax = get_taxonomy( $taxonomy );
if ( ! $tax ) {
wp_die( 0 );
}
if ( ! current_user_can( $tax->cap->assign_terms ) ) {
wp_die( - 1 );
}
$s = wp_unslash( $this->param( 'q' ) );
$comma = _x( ',', 'tag delimiter' );
if ( ',' !== $comma ) {
$s = str_replace( $comma, ',', $s );
}
if ( false !== strpos( $s, ',' ) ) {
$s = explode( ',', $s );
$s = $s[ count( $s ) - 1 ];
}
$s = trim( $s );
if ( strlen( $s ) < 2 ) {
wp_die();
}
$results = get_terms( $taxonomy, array(
'name__like' => $s,
'fields' => 'id=>name',
'number' => 10,
) );
$json = array();
foreach ( $results as $id => $name ) {
$json [] = array(
'label' => $name,
'id' => $id,
'value' => $name,
);
}
wp_send_json( $json );
}
/**
* searches a post by keywords
*/
public function postSearchAction() {
if ( ! $this->param( 'q' ) ) {
wp_die( 0 );
}
$s = wp_unslash( $this->param( 'q' ) );
/** @var WP_Post[] $posts */
$posts = get_posts( array(
'posts_per_page' => 10,
's' => $s,
) );
$json = array();
foreach ( $posts as $post ) {
$json [] = array(
'label' => $post->post_title,
'id' => $post->ID,
'value' => $post->post_title,
);
}
wp_send_json( $json );
}
}

View File

@@ -0,0 +1,435 @@
{
"IcoMoonType": "selection",
"icons": [
{
"icon": {
"paths": [
"M331.776 675.84h-208.896v-389.12h532.48v63.488c0 0 8.192 0 18.432 0s22.528 2.048 22.528 2.048v-155.648c0-26.624-18.432-53.248-45.056-53.248h-57.344v-30.72c0-32.768-16.384-51.2-49.152-51.2h-24.576c-30.72 0-49.152 18.432-49.152 51.2v30.72h-163.84v-30.72c0-32.768-14.336-51.2-47.104-51.2h-24.576c-30.72 0-51.2 18.432-51.2 51.2v30.72h-53.248c-26.624 0-49.152 26.624-49.152 53.248v473.088c0 26.624 22.528 47.104 49.152 47.104h204.8c0 0-2.048-12.288-2.048-22.528-2.048-8.192-2.048-18.432-2.048-18.432zM512 114.688c0-6.144 6.144-12.288 12.288-12.288h16.384c6.144 0 12.288 6.144 12.288 12.288v98.304c0 6.144-6.144 12.288-12.288 12.288h-16.384c-6.144 0-12.288-6.144-12.288-12.288v-98.304zM225.28 114.688c0-6.144 6.144-12.288 12.288-12.288h16.384c6.144 0 12.288 6.144 12.288 12.288v98.304c0 6.144-6.144 12.288-12.288 12.288h-16.384c-6.144 0-12.288-6.144-12.288-12.288v-98.304z",
"M651.264 385.024c-157.696 0-284.672 126.976-284.672 284.672s126.976 284.672 284.672 284.672c157.696 0 284.672-126.976 284.672-284.672s-126.976-284.672-284.672-284.672zM651.264 909.312c-133.12 0-239.616-108.544-239.616-239.616 0-133.12 108.544-239.616 239.616-239.616 133.12 0 239.616 108.544 239.616 239.616 0 133.12-106.496 239.616-239.616 239.616z",
"M681.984 532.48h-16.384c-6.144 0-10.24 4.096-10.24 10.24v133.12h-90.112c-6.144 0-12.288 4.096-12.288 10.24v18.432c0 6.144 4.096 10.24 12.288 10.24h122.88c6.144 0 8.192-4.096 8.192-10.24v-161.792c0-4.096-4.096-10.24-14.336-10.24z"
],
"attrs": [],
"isMulticolor": false,
"tags": [
"date_time"
],
"grid": 0
},
"attrs": [],
"properties": {
"order": 14,
"id": 0,
"prevSize": 32,
"code": 59659,
"name": "date_time"
},
"setIdx": 0,
"setId": 101,
"iconIdx": 0
},
{
"icon": {
"paths": [
"M640 256v-256h-448l-192 192v576h384v256h640v-768h-384zM192 90.51v101.49h-101.49l101.49-101.49zM64 704v-448h192v-192h320v192l-192 192v256h-320zM576 346.51v101.49h-101.49l101.49-101.49zM960 960h-512v-448h192v-192h320v640z"
],
"attrs": [],
"isMulticolor": false,
"tags": [
"copy",
"duplicate",
"files",
"pages",
"papers",
"documents"
],
"grid": 16
},
"attrs": [],
"properties": {
"order": 1,
"prevSize": 16,
"ligatures": "copy, duplicate",
"name": "copy",
"id": 0,
"code": 59648
},
"setIdx": 1,
"setId": 100,
"iconIdx": 0
},
{
"icon": {
"paths": [
"M128 512l256-256h-128l-256 256 256 256h128zM768 256h-128l256 256-256 256h128l256-256zM544 128l-160 768h96l160-768z"
],
"attrs": [],
"isMulticolor": false,
"tags": [
"code",
"embed"
],
"grid": 16
},
"attrs": [],
"properties": {
"id": 47,
"order": 68,
"prevSize": 16,
"code": 58922,
"name": "code"
},
"setIdx": 30,
"setId": 71,
"iconIdx": 47
},
{
"icon": {
"paths": [
"M292.571 713.143v109.714q0 22.857-16 38.857t-38.857 16h-182.857q-22.857 0-38.857-16t-16-38.857v-109.714q0-22.857 16-38.857t38.857-16h182.857q22.857 0 38.857 16t16 38.857zM292.571 420.571v109.714q0 22.857-16 38.857t-38.857 16h-182.857q-22.857 0-38.857-16t-16-38.857v-109.714q0-22.857 16-38.857t38.857-16h182.857q22.857 0 38.857 16t16 38.857zM1024 713.143v109.714q0 22.857-16 38.857t-38.857 16h-548.571q-22.857 0-38.857-16t-16-38.857v-109.714q0-22.857 16-38.857t38.857-16h548.571q22.857 0 38.857 16t16 38.857zM292.571 128v109.714q0 22.857-16 38.857t-38.857 16h-182.857q-22.857 0-38.857-16t-16-38.857v-109.714q0-22.857 16-38.857t38.857-16h182.857q22.857 0 38.857 16t16 38.857zM1024 420.571v109.714q0 22.857-16 38.857t-38.857 16h-548.571q-22.857 0-38.857-16t-16-38.857v-109.714q0-22.857 16-38.857t38.857-16h548.571q22.857 0 38.857 16t16 38.857zM1024 128v109.714q0 22.857-16 38.857t-38.857 16h-548.571q-22.857 0-38.857-16t-16-38.857v-109.714q0-22.857 16-38.857t38.857-16h548.571q22.857 0 38.857 16t16 38.857z"
],
"width": 1024.0000534057617,
"attrs": [],
"isMulticolor": false,
"tags": [
"th-list"
],
"defaultCode": 61451,
"grid": 14
},
"attrs": [],
"properties": {
"id": 0,
"order": 10,
"name": "th-list",
"prevSize": 28,
"code": 61451
},
"setIdx": 2,
"setId": 99,
"iconIdx": 0
},
{
"icon": {
"paths": [
"M950.857 548.571q-86.857-134.857-217.714-201.714 34.857 59.429 34.857 128.571 0 105.714-75.143 180.857t-180.857 75.143-180.857-75.143-75.143-180.857q0-69.143 34.857-128.571-130.857 66.857-217.714 201.714 76 117.143 190.571 186.571t248.286 69.429 248.286-69.429 190.571-186.571zM539.429 329.143q0-11.429-8-19.429t-19.429-8q-71.429 0-122.571 51.143t-51.143 122.571q0 11.429 8 19.429t19.429 8 19.429-8 8-19.429q0-49.143 34.857-84t84-34.857q11.429 0 19.429-8t8-19.429zM1024 548.571q0 19.429-11.429 39.429-80 131.429-215.143 210.571t-285.429 79.143-285.429-79.429-215.143-210.286q-11.429-20-11.429-39.429t11.429-39.429q80-130.857 215.143-210.286t285.429-79.429 285.429 79.429 215.143 210.286q11.429 20 11.429 39.429z"
],
"width": 1023.9979572296143,
"attrs": [],
"isMulticolor": false,
"tags": [
"eye"
],
"defaultCode": 61550,
"grid": 14
},
"attrs": [],
"properties": {
"id": 1,
"order": 11,
"name": "eye",
"prevSize": 28,
"code": 61550
},
"setIdx": 2,
"setId": 99,
"iconIdx": 1
},
{
"icon": {
"paths": [
"M733.143 309.143l-202.857 202.857 202.857 202.857 82.286-82.286q16.571-17.714 40-8 22.286 9.714 22.286 33.714v256q0 14.857-10.857 25.714t-25.714 10.857h-256q-24 0-33.714-22.857-9.714-22.286 8-39.429l82.286-82.286-202.857-202.857-202.857 202.857 82.286 82.286q17.714 17.143 8 39.429-9.714 22.857-33.714 22.857h-256q-14.857 0-25.714-10.857t-10.857-25.714v-256q0-24 22.857-33.714 22.286-9.714 39.429 8l82.286 82.286 202.857-202.857-202.857-202.857-82.286 82.286q-10.857 10.857-25.714 10.857-6.857 0-13.714-2.857-22.857-9.714-22.857-33.714v-256q0-14.857 10.857-25.714t25.714-10.857h256q24 0 33.714 22.857 9.714 22.286-8 39.429l-82.286 82.286 202.857 202.857 202.857-202.857-82.286-82.286q-17.714-17.143-8-39.429 9.714-22.857 33.714-22.857h256q14.857 0 25.714 10.857t10.857 25.714v256q0 24-22.286 33.714-7.429 2.857-14.286 2.857-14.857 0-25.714-10.857z"
],
"width": 877.7190818786621,
"attrs": [],
"isMulticolor": false,
"tags": [
"arrows-alt"
],
"defaultCode": 61618,
"grid": 14
},
"attrs": [],
"properties": {
"id": 2,
"order": 2,
"name": "arrows-alt",
"prevSize": 28,
"code": 61618
},
"setIdx": 2,
"setId": 99,
"iconIdx": 2
},
{
"icon": {
"paths": [
"M790.857 529.714l-758.857 421.714q-13.143 7.429-22.571 1.714t-9.429-20.571v-841.143q0-14.857 9.429-20.571t22.571 1.714l758.857 421.714q13.143 7.429 13.143 17.714t-13.143 17.714z"
],
"width": 804.0000019073486,
"attrs": [],
"isMulticolor": false,
"tags": [
"play"
],
"defaultCode": 61515,
"grid": 14
},
"attrs": [],
"properties": {
"id": 3,
"order": 14,
"name": "play",
"prevSize": 28,
"code": 61515
},
"setIdx": 2,
"setId": 99,
"iconIdx": 3
},
{
"icon": {
"paths": [
"M877.714 109.714v804.571q0 14.857-10.857 25.714t-25.714 10.857h-292.571q-14.857 0-25.714-10.857t-10.857-25.714v-804.571q0-14.857 10.857-25.714t25.714-10.857h292.571q14.857 0 25.714 10.857t10.857 25.714zM365.714 109.714v804.571q0 14.857-10.857 25.714t-25.714 10.857h-292.571q-14.857 0-25.714-10.857t-10.857-25.714v-804.571q0-14.857 10.857-25.714t25.714-10.857h292.571q14.857 0 25.714 10.857t10.857 25.714z"
],
"width": 877.7150535583496,
"attrs": [],
"isMulticolor": false,
"tags": [
"pause"
],
"defaultCode": 61516,
"grid": 14
},
"attrs": [],
"properties": {
"id": 4,
"order": 13,
"name": "pause",
"prevSize": 28,
"code": 61516
},
"setIdx": 2,
"setId": 99,
"iconIdx": 4
},
{
"icon": {
"paths": [
"M950.857 859.429v-438.857q-18.286 20.571-39.429 37.714-153.143 117.714-243.429 193.143-29.143 24.571-47.429 38.286t-49.429 27.714-58.571 14h-1.143q-27.429 0-58.571-14t-49.429-27.714-47.429-38.286q-90.286-75.429-243.429-193.143-21.143-17.143-39.429-37.714v438.857q0 7.429 5.429 12.857t12.857 5.429h841.143q7.429 0 12.857-5.429t5.429-12.857zM950.857 258.857v-14t-0.286-7.429-1.714-7.143-3.143-5.143-5.143-4.286-8-1.429h-841.143q-7.429 0-12.857 5.429t-5.429 12.857q0 96 84 162.286 110.286 86.857 229.143 181.143 3.429 2.857 20 16.857t26.286 21.429 25.429 18 28.857 15.714 24.571 5.143h1.143q11.429 0 24.571-5.143t28.857-15.714 25.429-18 26.286-21.429 20-16.857q118.857-94.286 229.143-181.143 30.857-24.571 57.429-66t26.571-75.143zM1024 237.714v621.714q0 37.714-26.857 64.571t-64.571 26.857h-841.143q-37.714 0-64.571-26.857t-26.857-64.571v-621.714q0-37.714 26.857-64.571t64.571-26.857h841.143q37.714 0 64.571 26.857t26.857 64.571z"
],
"width": 1024.0009956359863,
"attrs": [],
"isMulticolor": false,
"tags": [
"envelope-o"
],
"defaultCode": 61443,
"grid": 14
},
"attrs": [],
"properties": {
"id": 5,
"order": 59,
"name": "envelope-o",
"prevSize": 28,
"code": 61443
},
"setIdx": 2,
"setId": 99,
"iconIdx": 5
},
{
"icon": {
"paths": [
"M877.714 512q0 89.143-34.857 170.286t-93.714 140-140 93.714-170.286 34.857-170.286-34.857-140-93.714-93.714-140-34.857-170.286q0-104 46-196t129.429-154.286q24.571-18.286 54.571-14.286t47.714 28.571q18.286 24 14 54t-28.286 48.286q-56 42.286-86.571 103.429t-30.571 130.286q0 59.429 23.143 113.429t62.571 93.429 93.429 62.571 113.429 23.143 113.429-23.143 93.429-62.571 62.571-93.429 23.143-113.429q0-69.143-30.571-130.286t-86.571-103.429q-24-18.286-28.286-48.286t14-54q17.714-24.571 48-28.571t54.286 14.286q83.429 62.286 129.429 154.286t46 196zM512 73.143v365.714q0 29.714-21.714 51.429t-51.429 21.714-51.429-21.714-21.714-51.429v-365.714q0-29.714 21.714-51.429t51.429-21.714 51.429 21.714 21.714 51.429z"
],
"width": 877.7170130411778,
"attrs": [],
"isMulticolor": false,
"tags": [
"power-off"
],
"defaultCode": 61457,
"grid": 14
},
"attrs": [],
"properties": {
"id": 6,
"order": 61,
"name": "power-off",
"prevSize": 28,
"code": 61457
},
"setIdx": 2,
"setId": 99,
"iconIdx": 6
},
{
"icon": {
"paths": [
"M632.571 501.143l-424 424q-10.857 10.857-25.714 10.857t-25.714-10.857l-94.857-94.857q-10.857-10.857-10.857-25.714t10.857-25.714l303.429-303.429-303.429-303.429q-10.857-10.857-10.857-25.714t10.857-25.714l94.857-94.857q10.857-10.857 25.714-10.857t25.714 10.857l424 424q10.857 10.857 10.857 25.714t-10.857 25.714z"
],
"width": 694.8569641113281,
"attrs": [],
"isMulticolor": false,
"tags": [
"chevron-right"
],
"defaultCode": 61524,
"grid": 14
},
"attrs": [],
"properties": {
"id": 7,
"order": 60,
"name": "chevron-right",
"prevSize": 28,
"code": 61524
},
"setIdx": 2,
"setId": 99,
"iconIdx": 7
},
{
"icon": {
"paths": [
"M676.571 512q0 14.857-10.857 25.714l-310.857 310.857q-10.857 10.857-25.714 10.857t-25.714-10.857-10.857-25.714v-164.571h-256q-14.857 0-25.714-10.857t-10.857-25.714v-219.429q0-14.857 10.857-25.714t25.714-10.857h256v-164.571q0-14.857 10.857-25.714t25.714-10.857 25.714 10.857l310.857 310.857q10.857 10.857 10.857 25.714zM877.714 310.857v402.286q0 68-48.286 116.286t-116.286 48.286h-182.857q-7.429 0-12.857-5.429t-5.429-12.857q0-2.286-0.571-11.429t-0.286-15.143 1.714-13.429 5.714-11.143 11.714-3.714h182.857q37.714 0 64.571-26.857t26.857-64.571v-402.286q0-37.714-26.857-64.571t-64.571-26.857h-178.286t-6.571-0.571-6.571-1.714-4.571-3.143-4-5.143-1.143-7.714q0-2.286-0.571-11.429t-0.286-15.143 1.714-13.429 5.714-11.143 11.714-3.714h182.857q68 0 116.286 48.286t48.286 116.286z"
],
"width": 877.7150535583496,
"attrs": [],
"isMulticolor": false,
"tags": [
"sign-in"
],
"defaultCode": 61584,
"grid": 14
},
"attrs": [],
"properties": {
"id": 8,
"order": 63,
"name": "sign-in",
"prevSize": 28,
"code": 61584
},
"setIdx": 2,
"setId": 99,
"iconIdx": 8
},
{
"icon": {
"paths": [
"M731.429 530.286v-274.286q0-14.857-10.857-25.714t-25.714-10.857h-274.286q-24 0-33.714 22.286-9.714 23.429 8 40l82.286 82.286-305.143 305.143q-10.857 10.857-10.857 25.714t10.857 25.714l58.286 58.286q10.857 10.857 25.714 10.857t25.714-10.857l305.143-305.143 82.286 82.286q10.286 10.857 25.714 10.857 6.857 0 14.286-2.857 22.286-9.714 22.286-33.714zM877.714 237.714v548.571q0 68-48.286 116.286t-116.286 48.286h-548.571q-68 0-116.286-48.286t-48.286-116.286v-548.571q0-68 48.286-116.286t116.286-48.286h548.571q68 0 116.286 48.286t48.286 116.286z"
],
"width": 877.7130457558669,
"attrs": [],
"isMulticolor": false,
"tags": [
"external-link-square"
],
"defaultCode": 61772,
"grid": 14
},
"attrs": [],
"properties": {
"id": 9,
"order": 58,
"name": "external-link-square",
"prevSize": 28,
"code": 61772
},
"setIdx": 2,
"setId": 99,
"iconIdx": 9
},
{
"icon": {
"paths": [
"M182.857 438.857h292.571v-109.714q0-60.571-42.857-103.429t-103.429-42.857-103.429 42.857-42.857 103.429v109.714zM658.286 493.714v329.143q0 22.857-16 38.857t-38.857 16h-548.571q-22.857 0-38.857-16t-16-38.857v-329.143q0-22.857 16-38.857t38.857-16h18.286v-109.714q0-105.143 75.429-180.571t180.571-75.429 180.571 75.429 75.429 180.571v109.714h18.286q22.857 0 38.857 16t16 38.857z"
],
"width": 658.2880783081055,
"attrs": [],
"isMulticolor": false,
"tags": [
"lock"
],
"defaultCode": 61475,
"grid": 14
},
"attrs": [],
"properties": {
"name": "lock",
"id": 10,
"order": 9,
"prevSize": 28,
"code": 61475
},
"setIdx": 2,
"setId": 99,
"iconIdx": 10
},
{
"icon": {
"paths": [
"M603.429 438.857q22.857 0 38.857 16t16 38.857v329.143q0 22.857-16 38.857t-38.857 16h-548.571q-22.857 0-38.857-16t-16-38.857v-329.143q0-22.857 16-38.857t38.857-16h18.286v-182.857q0-105.714 75.143-180.857t180.857-75.143 180.857 75.143 75.143 180.857q0 14.857-10.857 25.714t-25.714 10.857h-36.571q-14.857 0-25.714-10.857t-10.857-25.714q0-60.571-42.857-103.429t-103.429-42.857-103.429 42.857-42.857 103.429v182.857h420.571z"
],
"width": 658.2870407104492,
"attrs": [],
"isMulticolor": false,
"tags": [
"unlock-alt"
],
"defaultCode": 61758,
"grid": 14
},
"attrs": [],
"properties": {
"name": "unlock-alt",
"id": 11,
"order": 10,
"prevSize": 28,
"code": 61758
},
"setIdx": 2,
"setId": 99,
"iconIdx": 11
}
],
"height": 1024,
"metadata": {
"name": "icomoon"
},
"preferences": {
"showGlyphs": true,
"showQuickUse": true,
"showQuickUse2": true,
"showSVGs": true,
"fontPref": {
"prefix": "icon-",
"metadata": {
"fontFamily": "icomoon"
},
"metrics": {
"emSize": 1024,
"baseline": 6.25,
"whitespace": 50
},
"resetPoint": 58880,
"embed": false
},
"imagePref": {
"prefix": "icon-",
"png": true,
"useClassSelector": true,
"color": 4473924,
"bgColor": 16777215,
"classSelector": ".icon",
"height": 32,
"columns": 16,
"margin": 16
},
"historySize": 100,
"showCodes": true,
"showLiga": true
}
}

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#xe62a;" glyph-name="code" d="M128 448l256 256h-128l-256-256 256-256h128zM768 704h-128l256-256-256-256h128l256 256zM544 832l-160-768h96l160 768z" />
<glyph unicode="&#xe900;" glyph-name="copy" d="M640 704v256h-448l-192-192v-576h384v-256h640v768h-384zM192 869.49v-101.49h-101.49l101.49 101.49zM64 256v448h192v192h320v-192l-192-192v-256h-320zM576 613.49v-101.49h-101.49l101.49 101.49zM960 0h-512v448h192v192h320v-640z" />
<glyph unicode="&#xe90b;" glyph-name="date_time" d="M331.776 284.16h-208.896v389.12h532.48v-63.488c0 0 8.192 0 18.432 0s22.528-2.048 22.528-2.048v155.648c0 26.624-18.432 53.248-45.056 53.248h-57.344v30.72c0 32.768-16.384 51.2-49.152 51.2h-24.576c-30.72 0-49.152-18.432-49.152-51.2v-30.72h-163.84v30.72c0 32.768-14.336 51.2-47.104 51.2h-24.576c-30.72 0-51.2-18.432-51.2-51.2v-30.72h-53.248c-26.624 0-49.152-26.624-49.152-53.248v-473.088c0-26.624 22.528-47.104 49.152-47.104h204.8c0 0-2.048 12.288-2.048 22.528-2.048 8.192-2.048 18.432-2.048 18.432zM512 845.312c0 6.144 6.144 12.288 12.288 12.288h16.384c6.144 0 12.288-6.144 12.288-12.288v-98.304c0-6.144-6.144-12.288-12.288-12.288h-16.384c-6.144 0-12.288 6.144-12.288 12.288v98.304zM225.28 845.312c0 6.144 6.144 12.288 12.288 12.288h16.384c6.144 0 12.288-6.144 12.288-12.288v-98.304c0-6.144-6.144-12.288-12.288-12.288h-16.384c-6.144 0-12.288 6.144-12.288 12.288v98.304zM651.264 574.976c-157.696 0-284.672-126.976-284.672-284.672s126.976-284.672 284.672-284.672c157.696 0 284.672 126.976 284.672 284.672s-126.976 284.672-284.672 284.672zM651.264 50.688c-133.12 0-239.616 108.544-239.616 239.616 0 133.12 108.544 239.616 239.616 239.616 133.12 0 239.616-108.544 239.616-239.616 0-133.12-106.496-239.616-239.616-239.616zM681.984 427.52h-16.384c-6.144 0-10.24-4.096-10.24-10.24v-133.12h-90.112c-6.144 0-12.288-4.096-12.288-10.24v-18.432c0-6.144 4.096-10.24 12.288-10.24h122.88c6.144 0 8.192 4.096 8.192 10.24v161.792c0 4.096-4.096 10.24-14.336 10.24z" />
<glyph unicode="&#xf003;" glyph-name="envelope-o" d="M950.857 91.428v438.857q-18.286-20.571-39.429-37.714-153.143-117.714-243.429-193.143-29.143-24.571-47.429-38.286t-49.429-27.714-58.571-14h-1.143q-27.429 0-58.571 14t-49.429 27.714-47.429 38.286q-90.286 75.429-243.429 193.143-21.143 17.143-39.429 37.714v-438.857q0-7.429 5.429-12.857t12.857-5.429h841.143q7.429 0 12.857 5.429t5.429 12.857zM950.857 692v14t-0.286 7.429-1.714 7.143-3.143 5.143-5.143 4.286-8 1.429h-841.143q-7.429 0-12.857-5.429t-5.429-12.857q0-96 84-162.286 110.286-86.857 229.143-181.143 3.429-2.857 20-16.857t26.286-21.429 25.429-18 28.857-15.714 24.571-5.143h1.143q11.429 0 24.571 5.143t28.857 15.714 25.429 18 26.286 21.429 20 16.857q118.857 94.286 229.143 181.143 30.857 24.571 57.429 66t26.571 75.143zM1024 713.143v-621.714q0-37.714-26.857-64.571t-64.571-26.857h-841.143q-37.714 0-64.571 26.857t-26.857 64.571v621.714q0 37.714 26.857 64.571t64.571 26.857h841.143q37.714 0 64.571-26.857t26.857-64.571z" />
<glyph unicode="&#xf00b;" glyph-name="th-list" d="M292.571 237.714v-109.714q0-22.857-16-38.857t-38.857-16h-182.857q-22.857 0-38.857 16t-16 38.857v109.714q0 22.857 16 38.857t38.857 16h182.857q22.857 0 38.857-16t16-38.857zM292.571 530.286v-109.714q0-22.857-16-38.857t-38.857-16h-182.857q-22.857 0-38.857 16t-16 38.857v109.714q0 22.857 16 38.857t38.857 16h182.857q22.857 0 38.857-16t16-38.857zM1024 237.714v-109.714q0-22.857-16-38.857t-38.857-16h-548.571q-22.857 0-38.857 16t-16 38.857v109.714q0 22.857 16 38.857t38.857 16h548.571q22.857 0 38.857-16t16-38.857zM292.571 822.857v-109.714q0-22.857-16-38.857t-38.857-16h-182.857q-22.857 0-38.857 16t-16 38.857v109.714q0 22.857 16 38.857t38.857 16h182.857q22.857 0 38.857-16t16-38.857zM1024 530.286v-109.714q0-22.857-16-38.857t-38.857-16h-548.571q-22.857 0-38.857 16t-16 38.857v109.714q0 22.857 16 38.857t38.857 16h548.571q22.857 0 38.857-16t16-38.857zM1024 822.857v-109.714q0-22.857-16-38.857t-38.857-16h-548.571q-22.857 0-38.857 16t-16 38.857v109.714q0 22.857 16 38.857t38.857 16h548.571q22.857 0 38.857-16t16-38.857z" />
<glyph unicode="&#xf011;" glyph-name="power-off" horiz-adv-x="878" d="M877.714 438.857q0-89.143-34.857-170.286t-93.714-140-140-93.714-170.286-34.857-170.286 34.857-140 93.714-93.714 140-34.857 170.286q0 104 46 196t129.429 154.286q24.571 18.286 54.571 14.286t47.714-28.571q18.286-24 14-54t-28.286-48.286q-56-42.286-86.571-103.429t-30.571-130.286q0-59.429 23.143-113.429t62.571-93.429 93.429-62.571 113.429-23.143 113.429 23.143 93.429 62.571 62.571 93.429 23.143 113.429q0 69.143-30.571 130.286t-86.571 103.429q-24 18.286-28.286 48.286t14 54q17.714 24.571 48 28.571t54.286-14.286q83.429-62.286 129.429-154.286t46-196zM512 877.714v-365.714q0-29.714-21.714-51.429t-51.429-21.714-51.429 21.714-21.714 51.429v365.714q0 29.714 21.714 51.429t51.429 21.714 51.429-21.714 21.714-51.429z" />
<glyph unicode="&#xf023;" glyph-name="lock" horiz-adv-x="658" d="M182.857 512h292.571v109.714q0 60.571-42.857 103.429t-103.429 42.857-103.429-42.857-42.857-103.429v-109.714zM658.286 457.143v-329.143q0-22.857-16-38.857t-38.857-16h-548.571q-22.857 0-38.857 16t-16 38.857v329.143q0 22.857 16 38.857t38.857 16h18.286v109.714q0 105.143 75.429 180.571t180.571 75.429 180.571-75.429 75.429-180.571v-109.714h18.286q22.857 0 38.857-16t16-38.857z" />
<glyph unicode="&#xf04b;" glyph-name="play" horiz-adv-x="804" d="M790.857 421.143l-758.857-421.714q-13.143-7.429-22.571-1.714t-9.429 20.571v841.143q0 14.857 9.429 20.571t22.571-1.714l758.857-421.714q13.143-7.429 13.143-17.714t-13.143-17.714z" />
<glyph unicode="&#xf04c;" glyph-name="pause" horiz-adv-x="878" d="M877.714 841.143v-804.571q0-14.857-10.857-25.714t-25.714-10.857h-292.571q-14.857 0-25.714 10.857t-10.857 25.714v804.571q0 14.857 10.857 25.714t25.714 10.857h292.571q14.857 0 25.714-10.857t10.857-25.714zM365.714 841.143v-804.571q0-14.857-10.857-25.714t-25.714-10.857h-292.571q-14.857 0-25.714 10.857t-10.857 25.714v804.571q0 14.857 10.857 25.714t25.714 10.857h292.571q14.857 0 25.714-10.857t10.857-25.714z" />
<glyph unicode="&#xf054;" glyph-name="chevron-right" horiz-adv-x="695" d="M632.571 449.714l-424-424q-10.857-10.857-25.714-10.857t-25.714 10.857l-94.857 94.857q-10.857 10.857-10.857 25.714t10.857 25.714l303.429 303.429-303.429 303.429q-10.857 10.857-10.857 25.714t10.857 25.714l94.857 94.857q10.857 10.857 25.714 10.857t25.714-10.857l424-424q10.857-10.857 10.857-25.714t-10.857-25.714z" />
<glyph unicode="&#xf06e;" glyph-name="eye" d="M950.857 402.286q-86.857 134.857-217.714 201.714 34.857-59.429 34.857-128.571 0-105.714-75.143-180.857t-180.857-75.143-180.857 75.143-75.143 180.857q0 69.143 34.857 128.571-130.857-66.857-217.714-201.714 76-117.143 190.571-186.571t248.286-69.429 248.286 69.429 190.571 186.571zM539.429 621.714q0 11.429-8 19.429t-19.429 8q-71.429 0-122.571-51.143t-51.143-122.571q0-11.429 8-19.429t19.429-8 19.429 8 8 19.429q0 49.143 34.857 84t84 34.857q11.429 0 19.429 8t8 19.429zM1024 402.286q0-19.429-11.429-39.429-80-131.429-215.143-210.571t-285.429-79.143-285.429 79.429-215.143 210.286q-11.429 20-11.429 39.429t11.429 39.429q80 130.857 215.143 210.286t285.429 79.429 285.429-79.429 215.143-210.286q11.429-20 11.429-39.429z" />
<glyph unicode="&#xf090;" glyph-name="sign-in" horiz-adv-x="878" d="M676.571 438.857q0-14.857-10.857-25.714l-310.857-310.857q-10.857-10.857-25.714-10.857t-25.714 10.857-10.857 25.714v164.571h-256q-14.857 0-25.714 10.857t-10.857 25.714v219.429q0 14.857 10.857 25.714t25.714 10.857h256v164.571q0 14.857 10.857 25.714t25.714 10.857 25.714-10.857l310.857-310.857q10.857-10.857 10.857-25.714zM877.714 640v-402.286q0-68-48.286-116.286t-116.286-48.286h-182.857q-7.429 0-12.857 5.429t-5.429 12.857q0 2.286-0.571 11.429t-0.286 15.143 1.714 13.429 5.714 11.143 11.714 3.714h182.857q37.714 0 64.571 26.857t26.857 64.571v402.286q0 37.714-26.857 64.571t-64.571 26.857h-178.286t-6.571 0.571-6.571 1.714-4.571 3.143-4 5.143-1.143 7.714q0 2.286-0.571 11.429t-0.286 15.143 1.714 13.429 5.714 11.143 11.714 3.714h182.857q68 0 116.286-48.286t48.286-116.286z" />
<glyph unicode="&#xf0b2;" glyph-name="arrows-alt" horiz-adv-x="878" d="M733.143 641.714l-202.857-202.857 202.857-202.857 82.286 82.286q16.571 17.714 40 8 22.286-9.714 22.286-33.714v-256q0-14.857-10.857-25.714t-25.714-10.857h-256q-24 0-33.714 22.857-9.714 22.286 8 39.429l82.286 82.286-202.857 202.857-202.857-202.857 82.286-82.286q17.714-17.143 8-39.429-9.714-22.857-33.714-22.857h-256q-14.857 0-25.714 10.857t-10.857 25.714v256q0 24 22.857 33.714 22.286 9.714 39.429-8l82.286-82.286 202.857 202.857-202.857 202.857-82.286-82.286q-10.857-10.857-25.714-10.857-6.857 0-13.714 2.857-22.857 9.714-22.857 33.714v256q0 14.857 10.857 25.714t25.714 10.857h256q24 0 33.714-22.857 9.714-22.286-8-39.429l-82.286-82.286 202.857-202.857 202.857 202.857-82.286 82.286q-17.714 17.143-8 39.429 9.714 22.857 33.714 22.857h256q14.857 0 25.714-10.857t10.857-25.714v-256q0-24-22.286-33.714-7.429-2.857-14.286-2.857-14.857 0-25.714 10.857z" />
<glyph unicode="&#xf13e;" glyph-name="unlock-alt" horiz-adv-x="658" d="M603.429 512q22.857 0 38.857-16t16-38.857v-329.143q0-22.857-16-38.857t-38.857-16h-548.571q-22.857 0-38.857 16t-16 38.857v329.143q0 22.857 16 38.857t38.857 16h18.286v182.857q0 105.714 75.143 180.857t180.857 75.143 180.857-75.143 75.143-180.857q0-14.857-10.857-25.714t-25.714-10.857h-36.571q-14.857 0-25.714 10.857t-10.857 25.714q0 60.571-42.857 103.429t-103.429 42.857-103.429-42.857-42.857-103.429v-182.857h420.571z" />
<glyph unicode="&#xf14c;" glyph-name="external-link-square" horiz-adv-x="878" d="M731.429 420.571v274.286q0 14.857-10.857 25.714t-25.714 10.857h-274.286q-24 0-33.714-22.286-9.714-23.429 8-40l82.286-82.286-305.143-305.143q-10.857-10.857-10.857-25.714t10.857-25.714l58.286-58.286q10.857-10.857 25.714-10.857t25.714 10.857l305.143 305.143 82.286-82.286q10.286-10.857 25.714-10.857 6.857 0 14.286 2.857 22.286 9.714 22.286 33.714zM877.714 713.143v-548.571q0-68-48.286-116.286t-116.286-48.286h-548.571q-68 0-116.286 48.286t-48.286 116.286v548.571q0 68 48.286 116.286t116.286 48.286h548.571q68 0 116.286-48.286t48.286-116.286z" />
<glyph unicode="" glyph-name="external-link-square" horiz-adv-x="878" d="M731.429 420.571v274.286q0 14.857-10.857 25.714t-25.714 10.857h-274.286q-24 0-33.714-22.286-9.714-23.429 8-40l82.286-82.286-305.143-305.143q-10.857-10.857-10.857-25.714t10.857-25.714l58.286-58.286q10.857-10.857 25.714-10.857t25.714 10.857l305.143 305.143 82.286-82.286q10.286-10.857 25.714-10.857 6.857 0 14.286 2.857 22.286 9.714 22.286 33.714zM877.714 713.143v-548.571q0-68-48.286-116.286t-116.286-48.286h-548.571q-68 0-116.286 48.286t-48.286 116.286v548.571q0 68 48.286 116.286t116.286 48.286h548.571q68 0 116.286-48.286t48.286-116.286z" />
<glyph unicode="duplicate" glyph-name="copy" d="M640 704v256h-448l-192-192v-576h384v-256h640v768h-384zM192 869.49v-101.49h-101.49l101.49 101.49zM64 256v448h192v192h320v-192l-192-192v-256h-320zM576 613.49v-101.49h-101.49l101.49 101.49zM960 0h-512v448h192v192h320v-640z" />
<glyph unicode="copy" glyph-name="copy" d="M640 704v256h-448l-192-192v-576h384v-256h640v768h-384zM192 869.49v-101.49h-101.49l101.49 101.49zM64 256v448h192v192h320v-192l-192-192v-256h-320zM576 613.49v-101.49h-101.49l101.49 101.49zM960 0h-512v448h192v192h320v-640z" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="#039BE5" d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"/>
</svg>

After

Width:  |  Height:  |  Size: 500 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
<path fill="rgba(0, 0, 0, 0.54)" d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"/>
</svg>

After

Width:  |  Height:  |  Size: 512 B

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,301 @@
<?php
/**
* Thrive Themes - https://thrivethemes.com
*
* @package thrive-ultimatum
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // No direct access
}
/**
* Use this file to implement the hooks defined in admin/start.php
*/
/**
* Add the admin menu link for the dashboard page
*
* @param array $menus
*
* @return array
*/
function tve_ult_admin_menu( $menus = array() ) {
$menus['tu'] = array(
'parent_slug' => 'tve_dash_section',
'page_title' => __( 'Thrive Ultimatum', 'thrive-ult' ),
'menu_title' => __( 'Thrive Ultimatum', 'thrive-ult' ),
'capability' => TU_Product::cap(),
'menu_slug' => 'tve_ult_dashboard',
'function' => 'tve_ult_admin_dashboard',
);
return $menus;
}
/**
* Output Thrive Ultimatum dashboard - the main plugin admin page
*/
function tve_ult_admin_dashboard() {
if ( ! tve_ult_license_activated() ) {
return tve_ult_license_warning();
}
if ( ! tve_ult_check_tcb_version() ) {
return tve_ult_tcb_version_warning();
}
include dirname( __FILE__ ) . '/views/dashboard.php';
}
/**
* Output each TU backbone template
* called on the 'admin_print_footer_scripts' hook
*
*/
function tve_ult_backbone_templates() {
$templates = tve_dash_get_backbone_templates( plugin_dir_path( __FILE__ ) . 'views/template', 'template' );
tve_dash_output_backbone_templates( $templates );
}
/**
* Enqueue all required scripts and css
*
* @param string $hook
*/
function tve_ult_admin_enqueue_scripts( $hook ) {
$accepted_hooks = apply_filters( 'tve_ult_accepted_admin_pages', array(
'thrive-dashboard_page_tve_ult_dashboard',
) );
if ( ! in_array( $hook, $accepted_hooks ) ) {
return;
}
/* first, the license check */
if ( ! tve_ult_license_activated() ) {
return;
}
/* second, the minimum required TCB version */
if ( ! tve_ult_check_tcb_version() ) {
return;
}
/**
* enqueue dash scripts
*/
tve_dash_enqueue();
/**
* specific admin styles
*/
tve_ult_enqueue_style( 'thrive-ult-admin-style', TVE_Ult_Const::plugin_url( '/admin/css/styles.css' ) );
/**
* Enqueue jquery backbone & thickbox
*/
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'backbone' );
wp_enqueue_script( 'jquery-ui-sortable', false, array( 'jquery' ) );
tve_dash_enqueue_script( 'tve-dash-highcharts', TVE_DASH_URL . '/js/util/highcharts/highcharts.js', array(
'jquery',
), false, false );
wp_enqueue_script( 'jquery-ui-datepicker' );
tve_ult_enqueue_script( 'tve-ult-admin-js', TVE_Ult_Const::plugin_url( 'admin/js/dist/admin.min.js' ), array(
'jquery',
'backbone',
), false, true );
/**
* jQuery autocomplete - needed for Display Settings search
*/
wp_enqueue_script( 'jquery-ui-autocomplete' );
/* wystia script for popover videos */
wp_enqueue_script( 'tu-wistia-popover', '//fast.wistia.com/assets/external/popover-v1.js', array(), '', true );
wp_localize_script( 'tve-ult-admin-js', 'ThriveUlt', tve_ult_get_localization() );
/**
* include backbone script templates at the bottom of the page
*/
add_action( 'admin_print_footer_scripts', 'tve_ult_backbone_templates' );
}
/**
* get the localization array for the admin javascript
*
* @return array
*/
function tve_ult_get_localization() {
return array(
'plugin_url' => TVE_Ult_Const::plugin_url(),
'data' => array(
'campaigns' => tve_ult_get_campaigns( array(
'get_logs' => true,
) ),
'lead_groups' => function_exists( 'tve_leads_get_groups' ) ? tve_leads_get_groups() : false,
'shortcodes' => function_exists( 'tve_leads_get_shortcodes' ) ? tve_leads_get_shortcodes() : false,
'thrive_boxes' => function_exists( 'tve_leads_get_two_step_lightboxes' ) ? tve_leads_get_two_step_lightboxes() : false,
'tqb_optin' => tve_ult_filter_tqb_posts(),
'lead_gen_pages' => tvu_get_posts_with_lead_generations_element(),
'tve_lightboxes' => tvu_get_posts_with_lead_generations_element( 'tcb_lightbox' ),
'actions' => TU_Event_Action::get_detailed_list(),
'settings' => tve_ult_get_date_settings(),
'now' => tve_ult_current_time( 'Y-m-d H:i' ),
),
'event_type' => TVE_Ult_Const::event_types(),
'ajax_actions' => array(
'admin_controller' => 'tve_ult_admin_ajax_controller',
),
'campaigns_types' => TVE_Ult_Const::campaign_types(), //todo: delete this if it is not needed
't' => require TVE_Ult_Const::plugin_path() . 'admin/i18n.php',
'design_types' => TVE_Ult_Const::design_types_details(),
'campaign_templates' => TVE_Ult_Const::campaign_attribute_templates(),
'admin_nonce' => wp_create_nonce( 'tve_ult_admin_ajax_request' ),
'wp_timezone' => tve_ult_get_timezone_format(),
'date_format' => 'dd M yy',
'date_formats' => TVE_Ult_Const::date_format_details( 'all' ),
'time_format' => 'HH:mm',//@see $.fn.timepicker.formatTime for more formats
'wp_timezone_offset' => get_option( 'gmt_offset' ),
'dash_url' => admin_url( 'admin.php?page=tve_dash_section' ),
'tvd_webhook_rest_url' => tvd_get_webhook_route_url( '' ),
'integratedApis' => tve_dash_get_webhook_trigger_integrated_apis(),
'license' => [
'exp' => ! TD_TTW_User_Licenses::get_instance()->has_active_license( 'tu' ),
'gp' => TD_TTW_User_Licenses::get_instance()->is_in_grace_period( 'tu' ),
'show_lightbox' => TD_TTW_User_Licenses::get_instance()->show_gp_lightbox( 'tu' ),
'grace_time' => TD_TTW_User_Licenses::get_instance()->get_grace_period_left( 'tu' ),
'link' => tvd_get_individual_plugin_license_link( 'tu' )
]
);
}
/**
* Handles ajax requests
*/
function tve_ult_admin_ajax_controller() {
require_once plugin_dir_path( __FILE__ ) . 'classes/class-tve-ult-admin-ajaxcontroller.php';
$response = Tve_Ult_Admin_AjaxController::instance()->handle();
wp_send_json( $response );
}
/**
* filter implementation for getting the saved templates
*
* @param array $template_list
*
* @return array
*/
function tve_ult_filter_display_settings_templates( $template_list ) {
global $tve_ult_db;
$list = $tve_ult_db->get_display_settings_templates();
if ( empty( $list ) ) {
return $template_list;
}
foreach ( $list as $template ) {
$template->id = 'TU-' . $template->id;
$template->tag = 'TU';
}
$template_list['Thrive Ultimatum templates'] = $list;
return $template_list;
}
/**
* @param $template
* @param $template_id
*
* @return array|null|object|void
*/
function tve_ult_filter_display_settings_get_template( $template, $template_id ) {
if ( strpos( $template_id, 'TU-' ) === false ) {
return $template;
}
global $tve_ult_db;
return $tve_ult_db->get_display_settings_template( str_replace( 'TU-', '', $template_id ) );
}
/**
* Sometimes the only way to make the plugin work with other scripts is to denqueue them from some pages
*
* @param string $hook
*/
function tve_ult_remove_conflicting_scripts( $hook ) {
if ( $hook === 'toplevel_page_tve_dash_section' ) {
wp_dequeue_style( 'ks-giveaways-admin-style' );
wp_deregister_style( 'ks-giveaways-admin-style' );
}
}
/**
* Return posts that contain a lead generation element based on post type
*
* @param string $post_type
*
* @return array
*/
function tvu_get_posts_with_lead_generations_element( $post_type = 'page' ) {
$pages_with_lead_gen = array();
foreach (
get_posts( array(
'post_type' => $post_type,
'posts_per_page' => - 1,
'fields' => 'ids',
) ) as $page_id
) {
$content = tve_get_post_meta( $page_id, 'tve_updated_post' );
if ( strpos( do_shortcode( $content ), 'thrv_lead_generation' ) !== false ) {
$pages_with_lead_gen[ $page_id ] = get_post( $page_id )->post_title;
}
}
return $pages_with_lead_gen;
}
/**
* Return a list with the structure of all TQB posts
*
*/
function tve_ult_filter_tqb_posts() {
if ( ! is_plugin_active( "thrive-quiz-builder/thrive-quiz-builder.php" ) ) {
return array();
}
$posts = get_posts( array( 'post_type' => 'tqb_quiz', 'posts_per_page' => '-1' ) );
$post_data = array_map( function ( $post ) {
$data = get_post_meta( $post->ID, 'tqb_quiz_structure', true );
if ( empty( $data ) ) {
$data = array();
}
$data['quiz_title'] = $post->post_title;
return $data;
}, $posts );
$result = array();
foreach ( $post_data as $post ) {
if ( ! empty( $post['optin'] ) ) {
$result[] = $post;
}
}
return $result;
}

View File

@@ -0,0 +1,129 @@
<?php
return array(
'Dashboard' => __( 'Ultimatum Dashboard', 'thrive-ult'),
'InvalidName' => __( 'Name is required', 'thrive-ult'),
'InvalidCampaign' => __( 'Invalid Campaign', 'thrive-ult'),
'InvalidPostType' => __( 'Invalid post type', 'thrive-ult'),
'DisplaySettingsTemplateLoaded' => __( 'Display Settings Template Loaded', 'thrive-ult'),
'DisplaySettingsTemplateSaved' => __( 'Display Settings Template Saved', 'thrive-ult'),
'GeneralError' => __( 'An unexpected error occurred. Please try again and, if this still happens, try reloading the page.', 'thrive-ult'),
'PleaseSelectANameForYourTemplate' => __( 'Please select a name for your template !', 'thrive-ult'),
'Campaign_name' => __( 'Campaign name', 'thrive-ult'),
'CampaignMissingTemplate' => __( 'Please choose a template', 'thrive-ult'),
'DesignTypeMissing' => __( 'Please choose a design type', 'thrive-ult'),
'Start_date_required' => __( 'Start date is required', 'thrive-ult'),
'Start_time_required' => __( 'Start hour is required', 'thrive-ult'),
'End_date_required' => __( 'End date is required', 'thrive-ult'),
'End_time_required' => __( 'End hour is required', 'thrive-ult'),
'InvalidEndHour' => __( 'Invalid end hour', 'thrive-ult'),
'InvalidStartDate' => __( 'Start Date and Time need to be filled', 'thrive-ult'),
'InvalidStartDateToday' => __( 'Start date has to be in the future', 'thrive-ult'),
'InvalidEndDateToday' => __( 'End date has to be in the future', 'thrive-ult'),
'Start_hour_in_the_past' => __( 'Start hour has to be in the future', 'thrive-ult'),
'End_hour_in_the_past' => __( 'End hour has to be in the future', 'thrive-ult'),
'InvalidEndDateStart' => __( 'End date must be after start date', 'thrive-ult'),
'End_after_start_date' => __( 'End date must be after start date', 'thrive-ult'),
'End_after_start_time' => __( 'End hour must be after start hour', 'thrive-ult'),
'OccurrencesRequired' => __( 'Occurrences required', 'thrive-ult'),
'InvalidOccurrences' => __( 'Invalid occurrences', 'thrive-ult'),
'InvalidEndTimeStart' => __( 'End Time cannot be before or the same as the Start Time', 'thrive-ult'),
'InvalidDurationTime' => __( 'Duration must not be grater than %s', 'thrive-ult'),
'InvalidRepeatOn' => __( 'Please check at least one day for the campaign start', 'thrive-ult'),
'InvalidEvergreenDays' => __( 'Please choose an evergreen timeframe', 'thrive-ult'),
'InvalidEvergreenDaysZero' => __( 'Evergreen timeframe must be grater than 0', 'thrive-ult'),
'InvalidEvergreenDaysCharacters' => __( 'Please only input numbers in the days field', 'thrive-ult'),
'InvalidEvergreenExpirationCharacters' => __( 'Please only input numbers in the campaign end field', 'thrive-ult'),
'InvalidEvergreenExpirationBigger' => __( 'Expiration has to be bigger than duration days', 'thrive-ult'),
'Trigger_required' => __( 'Trigger is required', 'thrive-ult'),
'InvalidLeadGroup' => __( 'Please check at least one Leadgroup as a trigger', 'thrive-ult'),
'InvalidPost' => __( 'Please choose a post as a trigger', 'thrive-ult'),
'SummaryRuns' => __( 'Runs every %s on %s', 'thrive-ult'),
'SummaryRunsDayYear' => __( 'Runs every %s', 'thrive-ult'),
'SummaryStarts' => __( 'Starts on %s and runs for %s', 'thrive-ult'),
'SummaryStartsEvergreen' => __( 'Starts on %s and runs for %s %s', 'thrive-ult'),
'SummaryStartsEvergreenWebhook' => __( 'Starts when incoming webhook is received from %s', 'thrive-ult'),
'SummaryStartsEvergreenTag' => __( 'Starts when a tag is applied in %s', 'thrive-ult'),
'SummaryStartsDaysHours' => __( 'Starts on %s and runs for %s and %s', 'thrive-ult'),
'more' => __( 'more', 'thrive-ult'),
'Showing_on' => __( 'Showing on', 'thrive-ult'),
'Hidden_on' => __( 'Hidden on', 'thrive-ult'),
'Not_set' => __( 'Not set', 'thrive-ult'),
'SelectAction' => __( 'Action is required', 'thrive-ult'),
'SelectDesign' => __( 'A design is required', 'thrive-ult'),
'SelectState' => __( 'A design state is required', 'thrive-ult'),
'InvalidAction' => __( 'Invalid Action', 'thrive-ult'),
'SelectCampaign' => __( 'Please select a campaign', 'thrive-ult'),
'NoAction' => __( 'No action set', 'thrive-ult'),
'NoDesignSelected' => __( 'You must display at least a design', 'thrive-ult'),
'Event_type_required' => __( 'Event is required', 'thrive-ult'),
'InvalidTriggerIds' => __( 'No trigger action was chosen', 'thrive-ult'),
'InvalidEndId' => __( 'No campaign to move to was selected', 'thrive-ult'),
'InvalidTriggerTime' => __( 'Invalid duration. Only numbers allowed', 'thrive-ult'),
'Day' => __( 'Day', 'thrive-ult'),
'count_day' => __( '%s day', 'thrive-ult'),
'count_days' => __( '%s days', 'thrive-ult'),
'count_hour' => __( '%s hour', 'thrive-ult'),
'count_hours' => __( '%s hours', 'thrive-ult'),
'Days' => __( 'Days', 'thrive-ult'),
'Hour' => __( 'Hour', 'thrive-ult'),
'Hours' => __( 'Hours', 'thrive-ult'),
'Copy_of' => __( 'Copy of ', 'thrive-ult'),
'n_suffix' => array(
1 => __( 'st', 'thrive-ult'),
2 => __( 'nd', 'thrive-ult'),
3 => __( 'rd', 'thrive-ult'),
),
'n_th' => __( 'th', 'thrive-ult'),
'priority' => __( 'priority', 'thrive-ult'),
'InvalidEventTriggerTime' => __( "This value must be lower than the campaign's duration", 'thrive-ult'),
'No_of_impressions' => __( '# of impressions', 'thrive-ult'),
'Impressions' => __( 'Impressions', 'thrive-ult'),
'Conversion_rate' => __( 'Conversion rate', 'thrive-ult'),
'No_of_conversions' => __( '# of conversions', 'thrive-ult'),
'Conversions' => __( 'Conversions', 'thrive-ult'),
'ActionAlreadyExists' => __( 'A similar action already exists', 'thrive-ult'),
'main_state' => __( 'main state', 'thrive-ult'),
'Max23Hours' => __( 'Value cannot be higher than 23', 'thrive-ult'),
'NoDesigns' => __( 'You have to create at least a design before adding / editing timeline events', 'thrive-ult'),
'Select_template' => __( 'Select a template', 'thrive-ult'),
'Display_settings_saved' => __( 'Display settings saved', 'thrive-ult'),
'template_loaded' => __( 'Template "%s" loaded successfully', 'thrive-ult'),
'Invalid_duration' => __( 'Duration must be realistic', 'thrive-ult'),
'Invalid_value' => __( "Total duration can't be 0", 'thrive-ult'),
'Invalid_value_hours' => __( 'Value must be 0-23', 'thrive-ult'),
'Invalid_value_minutes_seconds' => __( 'Value must be 0-59', 'thrive-ult'),
'Invalid_end_evergreen' => __( 'This must be a positive number bigger than the duration', 'thrive-ult'),
'Recurrence_required' => __( 'Recurrence is required', 'thrive-ult'),
'Campaign_started' => __( 'Campaign started', 'thrive-ult'),
'Campaign_paused' => __( 'Campaign paused', 'thrive-ult'),
'Select_conversion_target' => __( 'A conversion target (Lead Group or Shortcode) is required', 'thrive-ult'),
'Choose_conversion_page' => __( 'A conversion target is required. Search for a post / page', 'thrive-ult'),
'Choose_trigger_page' => __( 'Required field. Start typing to search for a post / page', 'thrive-ult'),
'InvalidHour' => __( 'Invalid hour', 'thrive-ult'),
'Choose_a_template' => __( 'Choose a template', 'thrive-ult'),
'Choose_campaign_type' => __( 'Choose a campaign type', 'thrive-ult'),
'Thrive_Dashboard' => __( 'Thrive Dashboard', 'thrive-ult'),
'MissingPromotionURL' => __( 'A promotion URL needs to be set before generating the email link', 'thrive-ult'),
'Pre_access_required' => __( 'Pre-access page URL is required', 'thrive-ult'),
'Promotion_required' => __( 'Promotion URL is required', 'thrive-ult'),
'Expired_required' => __( 'Expired page URL is required', 'thrive-ult'),
'Timezone_required' => __( 'Please select a timezone', 'thrive-ult'),
'Loading' => __( 'Loading...', 'thrive-ult'),
'SamePage' => __( '%s page and %s page cannot be the same page', 'thrive-ult'),
'pre_access' => __( 'pre-access', 'thrive-ult'),
'promotion' => __( 'promotion', 'thrive-ult'),
'expired' => __( 'expired', 'thrive-ult'),
'trigger_promotion_page' => __( 'This will start the campaign for visitors that access the Promotion Page setup from Lockdown settings (using the generated URL)', 'thrive-ult'),
'trigger_url' => __( 'This will start the campaign for visitors that access the page / post setup from below', 'thrive-ult'),
'trigger_first_visit' => __( 'This will start the campaign for first-time visitors of your site', 'thrive-ult'),
'trigger_conversion' => __( 'This will start the campaign for visitors that sign up to one of the following lead generation forms', 'thrive-ult'),
'trigger_webhook' => __( 'This will start the campaign when an incoming webhook is received from a third party platform (an autoresponder for example)', 'thrive-ult'),
'leads_missing_paused' => __( 'It seems you deactivated Thrive Leads - As a result, this campaign has been paused, and you will have to choose a new trigger', 'thrive-ult'),
'display_countdown_design' => __( 'Display Countdown Design %s', 'thrive-ult'),
'archived_campaigns' => __( 'Archived Campaigns', 'thrive-ult'),
'campaign_archived' => __( 'Campaign %s has been archived', 'thrive-ult'),
'campaign_restored' => __( 'Campaign %s has been restored', 'thrive-ult'),
'archive_campaign' => __( 'Archive this campaign', 'thrive-ult'),
'restore_campaign' => __( 'Restore this campaign', 'thrive-ult'),
);

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,16 @@
<?php
/**
* Define Admin hooks and include required files
*/
require_once plugin_dir_path( __FILE__ ) . 'functions.php';
add_filter( 'tve_dash_admin_product_menu', 'tve_ult_admin_menu' );
add_action( 'admin_enqueue_scripts', 'tve_ult_admin_enqueue_scripts' );
add_action( 'admin_enqueue_scripts', 'tve_ult_remove_conflicting_scripts', 10000 );
add_action( 'wp_ajax_tve_ult_admin_ajax_controller', 'tve_ult_admin_ajax_controller' );
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
add_filter( 'thrive_display_options_get_templates', 'tve_ult_filter_display_settings_templates' );
add_filter( 'thrive_display_options_get_template', 'tve_ult_filter_display_settings_get_template', 10, 2 );
}

View File

@@ -0,0 +1,2 @@
<p><?php echo $action['description'] ?></p>

View File

@@ -0,0 +1,27 @@
<p><?php echo $action['description'] ?></p>
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s6">
<div class="tvd-input-field">
<select name="campaign" id="tvu-campaign" data-name="">
<option value="0"><?php echo __( "Choose campaign", 'thrive-ult') ?></option>
<?php foreach ( $campaigns as $c ) : ?>
<?php $selected = ( ! empty( $action['campaign'] && $c->ID == $action['campaign'] ) ? 'selected="selected"' : '' ); ?>
<option <?php echo $selected ?> value="<?php echo $c->ID ?>"><?php echo $c->post_title ?></option>
<?php endforeach; ?>
</select>
<label for="tvu-campaign"><?php echo __( "Choose campaign", 'thrive-ult') ?></label>
</div>
</div>
</div>
<script type="text/javascript">
(
function ( $ ) {
ThriveUlt.util.ajax_done = function () {
var $campaign = $( "#tvu-campaign" );
$campaign.trigger( 'change' );
TVE_Dash.materialize( $( "#tvu-campaign" ).parent() );
};
}
)( jQuery )
</script>

View File

@@ -0,0 +1,2 @@
<p><?php echo __( "No options for this action", 'thrive-ult') ?></p>

View File

@@ -0,0 +1,95 @@
<?php if ( $all_used ) : ?>
<p class="tvd-text-red"><?php echo __( 'All designs are already used', 'thrive-ult') ?></p>
<?php return; ?>
<?php endif; ?>
<?php if ( empty( $designs ) ) : ?>
<p class="tvd-text-red"><?php echo __( 'No design available', 'thrive-ult') ?></p>
<?php return; ?>
<?php endif; ?>
<div class="tvd-card tvd-white">
<div class="tvd-card-content">
<div class="tvd-row tvd-collapse tvd-no-margin-bottom">
<div class="tvd-col tvd-s5">
<div class="tvd-input-field tvd-no-margin">
<select name="design" id="tvu-design" data-name="" data-field="design">
<option disabled selected value="0"><?php echo __( 'Choose design to show', 'thrive-ult') ?></option>
<?php foreach ( $designs as $d ) : ?>
<?php $selected = ( ! empty( $action['design'] ) && $d['id'] == $action['design'] ? 'selected="selected"' : '' ); ?>
<option <?php echo $selected ?>
value="<?php echo $d['id'] ?>"><?php echo $d['post_title'] ?></option>
<?php endforeach; ?>
</select>
<label for="tvu-design">&nbsp;</label>
</div>
</div>
<div class="tvd-col tvd-s1">
&nbsp;
</div>
<div id="tvu-states-wrapper" class="tvd-col tvd-s5" style="display: none;">
<div class="tvd-input-field tvd-no-margin">
<select id="tvu-state" name="state" data-name="" data-field="state">
<option disabled selected value="0"><?php echo __( 'Choose design state', 'thrive-ult') ?></option>
</select>
<label for="tvu-state">&nbsp;</label>
</div>
</div>
<div class="tvd-col tvd-s1">
&nbsp;
</div>
</div>
<div class="tvu-addtimeline-actions">
<a id="tvu-add-event-action" href="javascript:void(0)" class="tvd-icon-check tvd-text-green tvd-pointer tvu-btn-icon-small tvd-margin-right-small"></a>
<a id="tvu-cancel-edit-event-action" class="tvd-icon-close tvu-bluegray-text tvd-pointer tvu-btn-icon-small"></a>
</div>
</div>
</div>
<script type="text/javascript">
(function ( $ ) {
var designs = <?php echo $states ?>,
action = <?php echo json_encode( $action )?>,
$design = $( "#tvu-design" ),
$state = $( "#tvu-state" ),
$states_wrapper = $( "#tvu-states-wrapper" );
$design.change( function () {
var $this = $( this ),
id = $this.val(),
$options = $state.find( 'option' ),
length = 1 - $options.length;
if ( $options.length > 1 ) {
$options.slice( length ).remove();
}
if ( designs[id] === undefined ) {
return TVE_Dash.materialize( $state.parent() );
}
for ( var i = 0; i < designs[id].length; i ++ ) {
var state = designs[id][i];
$state.append( '<option value="' + state.id + '">' + state.post_title + '</option>' );
}
TVE_Dash.materialize( $state.parent() );
$states_wrapper[designs[id].length > 1 ? 'show' : 'hide']();
if ( designs[id].length === 1 ) {
$state.val( designs[id][0]['id'] );
$state.trigger( 'change' );
}
$state.trigger( 'tvdclear' );
} );
ThriveUlt.util.ajax_done = function () {
$design.trigger( 'change' );
if ( action.state ) {
$state.val( action.state );
$state.trigger( 'change' );
}
TVE_Dash.materialize( $state.parent() );
}
})( jQuery )
</script>

View File

@@ -0,0 +1,82 @@
<p><?php echo $action['description'] ?></p>
<?php if ( empty( $designs ) ) : ?>
<p class="tvd-text-red"><?php echo __( "You cannot choose this action because you have not set any design yet", 'thrive-ult') ?></p>
<?php return; ?>
<?php endif; ?>
<div class="tvd-v-spacer"></div>
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s6">
<div class="tvd-input-field">
<select name="design" id="tvu-design">
<option disabled selected value="0"><?php echo __( "Choose design to show", 'thrive-ult') ?></option>
<?php foreach ( $designs as $d ) : ?>
<?php $selected = ( ! empty( $action['design'] && $d['id'] == $action['design'] ) ? 'selected="selected"' : '' ); ?>
<option <?php echo $selected ?> value="<?php echo $d['id'] ?>"><?php echo $d['post_title'] ?></option>
<?php endforeach; ?>
</select>
<label for="tvu-design"><?php echo __( "Choose design to show", 'thrive-ult') ?></label>
</div>
</div>
<div id="tvu-states-wrapper" class="tvd-col tvd-s6">
<div class="tvd-input-field">
<select id="tvu-state" name="state">
<option value="0"><?php echo __( "Choose design sate", 'thrive-ult') ?></option>
</select>
<label for="tvu-state"><?php echo __( "Choose design sate", 'thrive-ult') ?></label>
</div>
</div>
</div>
<script type="text/javascript">
(
function ( $ ) {
var designs = <?php echo $states ?>,
action = <?php echo json_encode( $action )?>;
$design = $( "#tvu-design" );
$state = $( "#tvu-state" );
$states_wrapper = $( "#tvu-states-wrapper" );
$design.change( function () {
var $this = $( this ),
id = $this.val(),
$options = $state.find( 'option' ),
length = 1 - $options.length;
if ( $options.length > 1 ) {
$options.slice( length ).remove();
}
if ( designs[id] === undefined ) {
TVE_Dash.materialize( $state.parent() );
return;
}
for ( var i = 0; i < designs[id].length; i ++ ) {
var state = designs[id][i];
$state.append( '<option value="' + state.id + '">' + state.post_title + '</option>' );
}
TVE_Dash.materialize( $state.parent() );
$states_wrapper[designs[id].length > 1 ? 'show' : 'hide']();
if ( designs[id].length === 1 ) {
$state.val( designs[id][0]['id'] );
$state.trigger( 'change' );
}
} );
ThriveUlt.util.ajax_done = function () {
$design.trigger( 'change' );
if ( action.state ) {
$state.val( action.state );
$state.trigger( 'change' );
}
TVE_Dash.materialize( $state.parent() );
}
}
)( jQuery )
</script>

View File

@@ -0,0 +1,4 @@
<div class="tvu-header"></div>
<div class="tvu-breadcrumbs-wrapper" id="tvu-breadcrumbs-wrapper"></div>
<?php echo tvd_get_individual_plugin_license_message( new TU_Product(), true ); ?>
<div id="tvu-admin-wrapper"></div>

View File

@@ -0,0 +1,86 @@
<?php
/**
* notice to be displayed if license is not validated / active
* going to load the styles inline because there are so few lines and not worth an extra server hit.
*/
?>
<div class="tve-ultimatum-notice-overlay">
<div id="tve_ultimatum_license_notice">
<img src="<?php echo TVE_Ult_Const::plugin_url( 'admin/img/logo_330x165.png' ) ?>">
<p>
<?php echo __( 'You need to', 'thrive-ult') ?>
<a class="tve-license-link"
href="<?php echo admin_url( 'admin.php?page=tve_dash_license_manager_section' ); ?>"><?php echo __( 'activate your license', 'thrive-ult') ?></a>
<?php echo __( 'before you can use the Thrive Ultimatum plugin!', 'thrive-ult') ?>
</p>
</div>
</div>
<style type="text/css">
.tve-ultimatum-notice-overlay {
z-index: 1000000;
background: rgba(0, 0, 0, .4);
position: fixed;
width: 100%;
max-width: 100%;
margin-right: -160px;
height: 100%;
top: 32px;
right: 0;
}
@media (max-width: 960px) {
.tve-ultimatum-notice-overlay {
margin-right: -36px;
}
#tve_ultimatum_license_notice {
margin-left: -276px !important;
}
}
@media (max-width: 783px) {
.tve-ultimatum-notice-overlay {
margin-right: 0px;
}
#tve_ultimatum_license_notice {
margin-left: -300px !important;
}
}
#tve_ultimatum_license_notice {
width: 500px;
text-align: center;
top: 50%;
left: 50%;
margin: -100px 0 0 -250px;
padding: 50px;
z-index: 3000;
position: fixed;
-moz-border-radius-bottomleft: 10px;
-webkit-border-bottom-left-radius: 10px;
border-bottom-left-radius: 10px;
-moz-border-radius-bottomright: 10px;
-webkit-border-bottom-right-radius: 10px;
border-bottom-right-radius: 10px;
border-bottom: 1px solid #bdbdbd;
background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi…3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA=');
background-size: 100%;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(100%, #e6e6e6));
background-image: -webkit-linear-gradient(top, #ffffff 20%, #e6e6e6 100%);
background-image: -moz-linear-gradient(top, #ffffff 20%, #e6e6e6 100%);
background-image: -o-linear-gradient(top, #ffffff 20%, #e6e6e6 100%);
background-image: linear-gradient(top, #ffffff 20%, #e6e6e6 100%);
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
-webkit-box-shadow: 2px 5px 3px #efefef;
-moz-box-shadow: 2px 5px 3px #efefef;
box-shadow: 2px 2px 5px 3px rgba(0, 0, 0, .4);
}
#tve_ultimatum_license_notice .tve-license-link, #tve_ultimatum_license_notice .tve-license-link:active, #tve_ultimatum_license_notice .tve-license-link:visited {
color: #5DA61E;
}
</style>

View File

@@ -0,0 +1,67 @@
<?php
/**
* notice to be displayed if license is not validated / active
* going to load the styles inline because there are so few lines and not worth an extra server hit.
*/
?>
<div class="tve-ult-notice-overlay">
<div id="tve_ult_license_notice">
<img src="<?php echo TVE_Ult_Const::plugin_url( 'admin/img/logo_90x90.png' ) ?>" width="90">
<p style="margin: 20px 0">
<?php echo __( "It looks like you have Thrive Architect installed, but it's not compatible with this version of Thrive Ultimatum. Thrive Ultimatum uses Thrive Architect to edit various pieces of content.
To be able to use this feature, please make sure you have the latest versions for both plugins by clicking on the following link and checking for updates:", 'thrive-ult') ?>
</p>
<p style="margin: 0;">
<a class="tve-license-link"
href="<?php echo network_admin_url( 'plugins.php' ); ?>"><?php echo __( 'Manage plugins', 'thrive-ult') ?></a>
</p>
</div>
</div>
<style type="text/css">
.tve-ult-notice-overlay {
z-index: 3000000;
background: rgba(0, 0, 0, .4);
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
#tve_ult_license_notice {
width: 500px;
text-align: center;
top: 50%;
left: 50%;
margin: -150px 0 0 -300px;
padding: 50px;
z-index: 3000;
position: fixed;
-moz-border-radius-bottomleft: 10px;
-webkit-border-bottom-left-radius: 10px;
border-bottom-left-radius: 10px;
-moz-border-radius-bottomright: 10px;
-webkit-border-bottom-right-radius: 10px;
border-bottom-right-radius: 10px;
border-bottom: 1px solid #bdbdbd;
background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi…3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA=');
background-size: 100%;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(100%, #e6e6e6));
background-image: -webkit-linear-gradient(top, #ffffff 20%, #e6e6e6 100%);
background-image: -moz-linear-gradient(top, #ffffff 20%, #e6e6e6 100%);
background-image: -o-linear-gradient(top, #ffffff 20%, #e6e6e6 100%);
background-image: linear-gradient(top, #ffffff 20%, #e6e6e6 100%);
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
-webkit-box-shadow: 2px 5px 3px #efefef;
-moz-box-shadow: 2px 5px 3px #efefef;
box-shadow: 2px 2px 5px 3px rgba(0, 0, 0, .4);
}
#tve_ult_license_notice .tve-license-link, #tve_ult_license_notice .tve-license-link:active, #tve_ult_license_notice .tve-license-link:visited {
color: #5DA61E;
}
</style>

View File

@@ -0,0 +1,9 @@
<ul class="tvu-breadcrumbs">
<# links.each( function( item, index ) { item.has_link = index < links.size() - 1 #>
<li class="tvd-breadcrumb <#= ( item.has_link ? '' : ' tvu-no-link' ) #>">
<# if ( item.has_link ) { #><a href="<#= item.get_url() #>"><# } #>
<#= _.escape ( item.get ( 'label' ) ) #>
<# if ( item.has_link ) { #></a><# } #>
</li>
<# } ) #>
</ul>

View File

@@ -0,0 +1,48 @@
<div class="tvd-card tvd-white tvd-large tvd-slim-card">
<div class="tvu-campaign-controls">
<# if ( item.get( 'type' ) ) { #>
<span
class="tvu-campaign-type-<#= item.get('type') #> tvu-campaign-type tvd-badge tvd-inline-block">
<#= ThriveUlt.util.upperFirst( item.get('type')) #>
</span>
<# } #>
</div>
<div class="tvd-card-content">
<span class="tvd-icon-pencil tvd-pointer tvu-edit-campaign-title tvu-btn-icon-small tvd-right tvu-lightgray tvd-right-align"></span>
<h3 class="tvd-card-title tvd-truncate">
<#= item.get('post_title') #>
</h3>
<div class="tvd-row">
<div class="tvd-col tvd-s12">
<h4><?php echo __( 'Archived on', 'thrive-ult' ) ?></h4>
<span class="tvu-log-label">
<#= item.get('post_modified') #>
</span>
</div>
</div>
<div class="tvd-row">
<div class="tvd-col tvd-s12">
<h4><?php echo __( 'Last registered results', 'thrive-ult' ) ?></h4>
</div>
<div class="tvd-col tvd-s6">
<span class="tvu-log-count tvu-log-count-impressions tvd-block"><#= item.get( 'impressions' ) #></span>
<span class="tvu-log-label"><?php echo __( 'Impressions', 'thrive-ult' ) ?></span>
</div>
<div class="tvd-col tvd-s6">
<# if ( ! item.get( 'has_event_logs' ) || item.get( 'conversions' ) ) { #>
<span class="tvu-log-count tvu-log-count-conversions tvd-block"><#= item.get( 'conversion_rate' ) #><span class="tvu-log-count-percent">%</span></span>
<span class="tvu-log-label"><?php echo __( 'Conversion rate', 'thrive-ult' ) ?></span>
<# } #>
</div>
</div>
<div class="tvd-card-action">
<div class="tvd-row tvd-no-margin">
<div class="tvd-col tvd-s10 tvd-offset-s1">
<a href="javascript:void(0)" class="tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-green tvd-full-btn tvu-archive-campaign">
<?php echo __( 'Reactivate Campaign', 'thrive-ult' ) ?>
</a>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,22 @@
<h3 class="tvd-title"><?php echo __( 'Archived Campaigns', 'thrive-ult' ) ?></h3>
<div id="tvu-no-campaign-text">
<p>
<?php echo sprintf(
__( 'No archived campaigns.', 'thrive-ult' )
) ?>
</p>
</div>
<div class="tvd-v-spacer"></div>
<div class="tvd-row" id="tvu-campaigns-list"></div>
<div class="tvd-row">
<div class="tvd-col tvd-s6">
<a href="#purge-cache" class="tvd-btn-flat tvd-btn-flat-primary tvd-btn-flat-dark tvd-waves-effect">
&laquo; <?php echo __( 'Back to Dashboard', 'thrive-ult' ) ?>
</a>
</div>
</div>

View File

@@ -0,0 +1,10 @@
<div class="control-grid">
<h3 class="mr-30">
<?php echo __( 'Conversion Events', 'thrive-ult' ) ?>
<?php tve_ult_video( 'z2Rki4nTFDg' ) ?>
</h3 class>
<div class="tvd-right">
<a href="javascript:void(0)" id="tvu-add-conversion-event" class="tvu-add-conversion-event tvd-tooltipped tvd-btn tvd-btn-blue tvd-waves-effect tvd-waves-light tvd-right tvd-margin-right" data-tooltip="<?php echo __( 'Add new conversion event', 'thrive-ult' ) ?>" data-position="left"><?php echo __( 'Add New', 'thrive-ult' ) ?></a>
</div>
</div>
<div id="tvu-conversion-events" class="tvu-conversion-events"></div>

View File

@@ -0,0 +1,24 @@
<div class="tvd-card tvd-red tvd-large tvd-valign-wrapper tvd-slim-card tve-delete-campaign-card" tabindex="-1">
<div class="tvd-card-content tvd-center-align tvd-valign">
<h4 class="tvd-margin-top">
<?php echo __( "Are you sure you want to delete this campaign?", 'thrive-ult' ) ?>
</h4>
<# if(item.get('type') === ThriveUlt.util.campaignType.evergreen) { #>
<p><?php echo __( 'When deleting it, any relation between another campaign and this one will be lost', 'thrive-ult' ) ?></p>
<# } #>
</div>
<div class="tvd-card-action">
<div class="tvd-row">
<div class="tvd-col tvd-s12 tvd-m6">
<a class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-light tvd-left tvu-delete-yes">
<?php echo __( "Yes, delete", 'thrive-ult' ) ?>
</a>
</div>
<div class="tvd-col tvd-s12 tvd-m6">
<a class="tvd-btn-flat tvd-btn-flat-primary tvd-btn-flat-light tvd-right tvu-delete-no">
<?php echo __( "No, keep it", 'thrive-ult' ) ?>
</a>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,132 @@
<div class="tvd-v-spacer"></div>
<div class="tvd-row">
<div class="tvd-col tvd-s8">
<div class="tvu-edit-title-align">
<span><?php echo __( 'Campaign name:', 'thrive-ult' ) ?></span>
<div class="tvu-edit-title-container">
<h3 class="tvu-campaign-title">
<#= item.get('post_title') #>
</h3>
<span class="tvd-icon-pencil tvd-pointer tvu-edit-campaign-title tvd-inline-block"></span>
</div>
</div>
</div>
<div class="tvd-col tvd-s3 tvd-offset-s1">
<div class="tvd-right">
<span class="tvd-inline-block tvu-campaign-status-label">
<?php echo __( 'Campaign status:', 'thrive-ult' ) ?>
</span>
<span class="tvu-campaign-status-<#= item.get('status') #> tvd-pointer tvu-campaign-status tvd-inline-block tvu-campaign-status-list">
<#= item.get('status') #>
</span>
</div>
</div>
</div>
<div class="tvd-row" id="tvu-campaign-settings">
<div class="tvd-col tvd-s12 tvd-m4 tvd-l4">
<div class="tvd-card tvd-white tvu-small-card">
<div class="tvd-card-content">
<div class="tvd-row tvd-no-margin tvd-valign-wrapper">
<div class="tvd-col tvd-s12 tvd-m3 tvd-hide-on-meds-and-down tvd-l2 tvd-center-align tvd-valign tvu-campaign-icon">
<i class="tvu-icon-list tvu-gray-text tvu-large-icon"></i>
</div>
<div class="tvd-col tvd-s12 tvd-ms12 tvd-m9 tvd-l10 tvd-valign">
<h3 class="tvu-campaign-type-title tvd-truncate"><?php echo __( 'Campaign Type', 'thrive-ult' ) ?></h3>
<p class="tvu-campaign-type tvu-campaign-card-summary"><?php echo __( 'Not set', 'thrive-ult' ) ?></p>
</div>
</div>
</div>
<div class="tvd-card-action">
<div class="tvd-row tvd-no-margin tvd-valign-wrapper">
<div class="tvd-col tvd-s12 tvd-m1 tvd-hide-on-meds-and-down tvd-l2 tvd-center-align tvd-valign">
<p>&nbsp;</p>
</div>
<div class="tvd-col tvd-s12 tvd-m11 tvd-ms12 tvd-l10 tvd-valign tvd-relative">
<hr class="tvu-lightgray-line">
<a class="tvd-btn-flat tvu-btn-flat tvu-btn-flat-blue tvu-edit-campaign" href="javascript:void(0)">
<?php echo __( 'Edit', 'thrive-ult' ) ?>
<# if ( item.get_settings_step() === 'type' ) { #>
<div class="tvd-tooltip-visible tvd-fixed-bottom tvd-normalize">
<span><?php echo __( 'Next step: select a campaign type', 'thrive-ult' ) ?></span>
</div>
<# } #>
</a>
<# if ( item.get_settings_step() === 'lockdown_type' ) { #>
<div class="tvd-tooltip-visible tvd-fixed-bottom tvd-normalize tvu-edit-campaign" style="cursor: pointer;">
<span><?php echo __( 'Next step: select a campaign trigger for open campaigns', 'thrive-ult' ) ?></span>
</div>
<# } #>
<# if ( item.get_settings_step() === 'leads_missing' ) { #>
<div class="tvd-tooltip-visible tvd-fixed-bottom tvd-normalize tvu-edit-campaign" style="cursor: pointer;">
<span><?php echo __( 'Next step: Thrive Leads was deactivated, change trigger', 'thrive-ult' ) ?></span>
</div>
<# } #>
</div>
</div>
</div>
</div>
</div>
<div class="tvd-col tvd-s12 tvd-m4 tvd-l4">
<div class="tvd-card tvd-white tvu-small-card">
<div class="tvd-card-content">
<div class="tvd-row tvd-no-margin tvd-valign-wrapper">
<div class="tvd-col tvd-s12 tvd-hide-on-meds-and-down tvd-m3 tvd-l2 tvd-center-align tvd-valign">
<i class="tvu-icon-eye tvu-gray-text tvu-large-icon"></i>
</div>
<div class="tvd-col tvd-s12 tvd-m9 tvd-ms12 tvd-l10 tvd-valign">
<h3><?php echo __( 'Display', 'thrive-ult' ) ?></h3>
<p id="tvu-display-summary" class="tvu-campaign-card-summary">
<#= item.get( 'display_settings_summary' ) || <?php echo wp_json_encode( __( 'Not set', 'thrive-ult' ) ) ?> #>
</p>
</div>
</div>
</div>
<div class="tvd-card-action">
<div class="tvd-row tvd-no-margin tvd-valign-wrapper">
<div class="tvd-col tvd-m1 tvd-hide-on-meds-and-down tvd-l2 tvd-center-align tvd-valign">
<p>&nbsp;</p>
</div>
<div class="tvd-col tvd-s12 tvd-m11 tvd-ms12 tvd-l10 tvd-valign tvd-relative">
<hr class="tvu-lightgray-line">
<a class="tvd-btn-flat tvu-btn-flat tvu-btn-flat-blue tvu-display-settings tvd-relative"
href="javascript:void(0)"> <?php echo __( 'Edit', 'thrive-ult' ) ?>
<# if ( item.get_settings_step() === 'display' ) { #>
<div class="tvd-tooltip-visible tvd-fixed-bottom tvd-normalize">
<span><?php echo __( 'Next step: select a display mode', 'thrive-ult' ) ?></span></div>
<# } #>
</a>
</div>
</div>
</div>
</div>
</div>
<div id="tvd-lockdown-wrapper" class="tvd-col tvd-s12 tvd-m4 tvd-l4"></div>
</div>
<h3><?php echo __( 'Designs', 'thrive-ult' ) ?></h3>
<div class="control-grid flex-start" id="tvu-designs-list">
<div class="tvu-add-design tvd-pointer">
<div class="tvd-card tvd-medium-xxsmall tvd-card-new tvd-valign-wrapper tvd-relative">
<div class="tvd-card-content tvd-valign tvd-center-align">
<i class="tvd-icon-plus tvd-icon-rounded tvd-icon-medium"></i>
<h4><?php echo __( 'New Design', 'thrive-ult' ) ?></h4>
</div>
<# if ( item.get_settings_step() === 'design' ) { #>
<div class="tvd-tooltip-visible tvd-fixed-right"><span><?php echo __( 'Next step: create a countdown timer design', 'thrive-ult' ) ?></span></div>
<# } #>
</div>
</div>
</div>
<# if ( item.can_set_events() ) { #>
<div class="control-grid top">
<div id="tvu-timeline-wrapper"></div>
<div id="tvu-conversion-wrapper"></div>
</div>
<# } #>
<div class="tvd-v-spacer vs-2"></div>
<div class="control-grid">
<a href="#purge-cache" class="tvd-btn-flat tvd-btn-flat-primary tvd-btn-flat-dark tvd-waves-effect">
&laquo; <?php echo __( 'Back to Dashboard', 'thrive-ult' ) ?>
</a>
</div>

View File

@@ -0,0 +1,88 @@
<div class="tvd-card tvd-white tvd-large tvd-slim-card">
<div class="tvu-campaign-controls">
<# if ( item.get( 'type' ) ) { #>
<span
class="tvu-campaign-type-<#= item.get('type') #> tvu-campaign-type tvd-badge tvd-inline-block">
<#= ThriveUlt.util.upperFirst( item.get('type')) #>
</span>
<# } #>
<div class="tvd-inline-block tvu-campaign-actions tvd-margin-left">
<a data-id="<#= item.get('ID') #>" class="tvu-campaign-display tvu-icon-gray tvu-btn-icon-small tvd-tooltipped" data-position="top"
data-tooltip="<?php echo __( 'Display settings', 'thrive-ult' ) ?>" href="javascript:void(0)">
<i class="tvd-icon-settings"></i>
</a>
<a data-id="<#= item.get('ID') #>" class="tvu-copy-campaign tvu-icon-gray tvu-btn-icon-small tvd-tooltipped" data-position="top"
data-tooltip="<?php echo __( 'Duplicate campaign', 'thrive-ult' ) ?>">
<i class="tvu-icon-clone"></i>
</a>
<a data-id="<#= item.get('ID') #>"
class="tvu-delete-campaign tvu-icon-gray tvu-btn-icon-small tvd-tooltipped" data-position="top"
data-tooltip="<?php echo __( 'Delete campaign', 'thrive-ult' ) ?>">
<i class="tvd-icon-trash-o"></i>
</a>
<i class="tvu-drag-card tvu-icon-handle tvu-icon-gray tvu-btn-icon-small tvd-tooltipped" data-position="top"
data-tooltip="<?php echo __( 'Drag & Drop the card in order to change the campaign priority.', 'thrive-ult' ) ?>"></i>
<# if( ! item.is_archived()) { #>
<a data-id="<#= item.get('ID') #>" data-archived="false" href="javascript:void(0)"
class="tvu-archive-campaign tvu-icon-gray tvu-btn-icon-small tvd-tooltipped" data-position="top"
data-tooltip="<#= item.get_archive_tooltip() #>">
<i class="tvd-icon-archive"></i>
</a>
<# } #>
</div>
<span class="tvu-campaign-status-card tvu-campaign-status-running tvd-pointer tvu-campaign-status tvd-tooltipped<#= ( item.is_running() ? '' : ' tvd-hide' ) #>"
data-tooltip="<?php echo __( 'Pause Campaign', 'thrive-ult' ) ?>" data-position="top"></span>
<span class="tvu-campaign-status-card tvu-campaign-status-paused tvd-pointer tvu-campaign-status tvd-tooltipped<#= ( item.is_running() ? ' tvd-hide' : '' ) #>"
data-tooltip="<?php echo __( 'Start Campaign', 'thrive-ult' ) ?>" data-position="top"></span>
</div>
<div class="tvd-card-content">
<span class="tvd-icon-pencil tvd-pointer tvu-edit-campaign-title tvu-btn-icon-small tvd-right tvu-lightgray tvd-right-align"></span>
<h3 class="tvd-card-title tvd-truncate">
<#= item.get('post_title') #>
</h3>
<div class="tvu-campaign-chart" id="tu-chart-<#= item.get('ID') #>" style="height: 150px;">
<div class="tvd-center-align tu-chart-loader tvd-relative tvu-graph-overlay">
<div class="tvd-preloader-wrapper tvd-big tvd-active">
<div class="tvd-spinner-layer tvd-spinner-blue-only">
<div class="tvd-circle-clipper tvd-left">
<div class="tvd-circle"></div>
</div>
<div class="tvd-gap-patch">
<div class="tvd-circle"></div>
</div>
<div class="tvd-circle-clipper tvd-right">
<div class="tvd-circle"></div>
</div>
</div>
</div>
</div>
<div class="tvd-center-align tvu-chart-no-data tvd-hide tvd-valign-wrapper">
<p class="tvd-valign">
<?php echo __( 'After the first few impressions / conversions are registered, the stats will be shown here', 'thrive-ult' ) ?>
</p>
</div>
</div>
<div class="tvd-row">
<div class="tvd-col tvd-s6 <# if ( ! item.get( 'has_event_logs' ) ) { #>tvu-blurred-item<# } #>">
<span class="tvu-log-count tvu-log-count-impressions tvd-block"><#= item.get( 'impressions' ) #></span>
<span class="tvu-log-label"><?php echo __( 'Impressions', 'thrive-ult' ) ?></span>
</div>
<div class="tvd-col tvd-s6 <# if ( ! item.get( 'has_event_logs' ) ) { #>tvu-blurred-item<# } #>">
<# if ( ! item.get( 'has_event_logs' ) || item.get( 'conversions' ) ) { #>
<span class="tvu-log-count tvu-log-count-conversions tvd-block"><#= item.get( 'conversion_rate' ) #><span class="tvu-log-count-percent">%</span></span>
<span class="tvu-log-label"><?php echo __( 'Conversion rate', 'thrive-ult' ) ?></span>
<# } #>
</div>
</div>
<div class="tvd-card-action">
<div class="tvd-row tvd-no-margin">
<div class="tvd-col tvd-s10 tvd-offset-s1">
<a href="#dashboard/campaign/<#= item.get('ID') #>" class="tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-green tvd-full-btn tvu-edit-campaign">
<?php echo __( 'Edit Campaign', 'thrive-ult' ) ?>
</a>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,19 @@
<div class="tvd-card tvd-red tvu-small-card">
<div class="tvd-card-content tvd-center-align">
<h4 class="tvd-margin-top"><?php echo __( 'Are you sure you want to disable Lockdown?', 'thrive-ult' ); ?></h4>
</div>
<div class="tvd-card-action">
<div class="tvd-row">
<div class="tvd-col tvd-s12 tvd-m6">
<a class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-light tvd-left tvu-delete-yes">
<?php echo __( 'Yes, disable it', 'thrive-ult' ) ?>
</a>
</div>
<div class="tvd-col tvd-s12 tvd-m6">
<a class="tvd-btn-flat tvd-btn-flat-primary tvd-btn-flat-light tvd-right tvu-delete-no">
<?php echo __( 'No, keep it', 'thrive-ult' ) ?>
</a>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,7 @@
<div class="tvd-input-field mr-20">
<input id="tvu-email-link<#= key || key == 0 ? key : 0 #>" readonly="readonly" class="tvd-no-focus tvu-email-link tvu-lockdown-input mb-0 p-5" type="text"
value="<#= model.get('link') ? model.get('link') : '' #>">
</div>
<a class="tve-copy-to-clipboard tvu-url-to-copy tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-blue" href="javascript:void(0)">
<span class="tvd-copy-text"><?php echo __( 'Copy', 'thrive-ult' ) ?></span>
</a>

View File

@@ -0,0 +1,57 @@
<div class="tvd-card tvd-white tvu-small-card <#= !item.get('type') || !item.has_valid_lockdown_trigger() ? 'tvd-gray' : '' #>">
<div class="tvd-card-content">
<div class="tvd-row tvd-no-margin tvd-valign-wrapper">
<div class="tvd-col tvd-s12 tvd-m3 tvd-hide-on-meds-and-down tvd-l2 tvd-center-align tvd-valign">
<# if(!item.get('lockdown')) { #>
<i class="tvu-icon-unlock tvu-gray-text tvu-large-icon"></i>
<# } else { #>
<i class="tvu-icon-lock tvu-gray-text tvu-large-icon"></i>
<# } #>
</div>
<div class="tvd-col tvd-s12 tvd-m9 tvd-ms12 tvd-l10 tvd-valign">
<h3 class="tvd-truncate">
<#= !item.get('lockdown') ? '<?php echo __( 'Open Campaign', 'thrive-ult' ) ?>' : '<?php echo __( 'Lockdown Campaign', 'thrive-ult' ) ?>' #>
</h3>
<p class="tvu-lockdown-summary tvu-campaign-card-summary">
<# if ( ! item.get( 'type' ) ) { #>
<?php $link = '<a href="javascript:void(0)" class="tvu-edit-campaign">' . __( 'Campaign Type', 'thrive-ult' ) . '</a>' ?>
<?php echo sprintf( __( 'Lockdown feature will become available after you setup the %s', 'thrive-ult' ), $link ) ?>
<# } else { #>
<#= !item.get('lockdown') ? '<?php echo __( 'Select the lockdown options for the campaign', 'thrive-ult' ) ?>' : '<?php echo __( 'Activated for ', 'thrive-ult' ) ?>' + ThriveUlt.util.get_type_title( item.get('type') ) #>
<# } #>
</p>
</div>
</div>
</div>
<div class="tvd-card-action">
<div class="tvd-row tvd-no-margin tvd-valign-wrapper">
<div class="tvd-col tvd-m1 tvd-l2 tvd-hide-on-meds-and-down tvd-center-align tvd-valign">
<p>&nbsp;</p>
</div>
<div class="tvd-col tvd-s12 tvd-m11 tvd-l10 tvd-ms12 tvd-valign tvd-relative">
<hr class="tvu-lightgray-line">
<div class="tvd-row tvd-collapse tvd-no-mb">
<div class="tvd-col <#= !item.get('lockdown') ? 'tvd-m10 tvd-l10 ' : 'tvd-m6 tvd-l6 ' #>">
<a class="tvd-btn-flat tvu-btn-flat <#= !item.get('type') || !item.has_valid_lockdown_trigger() ? 'tvd-tooltipped tvd-disabled tvu-disabled' : 'tvu-btn-flat-blue tvu-lockdown' #>"
href="javascript:void(0)"
data-tooltip="<?php echo __( "The lockdown feature requires the campaign trigger to be either 'Thrive Leads conversion', 'Visit to Promotion Page' or '3rd party event'", 'thrive-ult' ) ?>">
<#= !item.get('lockdown') ? '<?php echo __( 'Activate Lockdown', 'thrive-ult' ) ?>' : '<?php echo __( 'Edit', 'thrive-ult' ) ?>' #>
</a>
<# if ( item.get_settings_step() === 'lockdown' ) { #>
<div class="tvd-tooltip-visible tvd-fixed-bottom tvd-normalize">
<span><?php echo __( 'Next step: select campaign pages', 'thrive-ult' ) ?></span>
</div>
<# } #>
</div>
<div class="tvd-col tvd-m6 tvd-l6">
<# if(item.get('lockdown')) { #>
<a class="tvd-btn-flat tvu-btn-flat tvu-btn-flat-red tvu-disable-lockdown tvd-right" href="javascript:void(0)">
<?php echo __( 'Disable', 'thrive-ult' ) ?>
</a>
<# } #>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,8 @@
<input id="tvu-promotion-url<#= key ? key : 0 #>" class="tvd-no-focus tvu-promotion-url" type="text" value="<#= model.get('value') ? model.get('value') : '' #>"
<#= key && key > 0 ? '' : 'data-field="promotion"' #>
data-allow-regex="^http(s)?:\/\/">
<label class=" <#= model.get('value') ? 'tvd-active' : '' #>" for="tvu-promotion-url<#= key ? key : 0 #>"><?php echo __( 'Enter search term to select page', 'thrive-ult' ) ?></label>
<# if ( key && key > 0) { #>
<div class="tvu-close-input tvd-right"><a href="javascript:void(0)" class="tve-ult-remove-button tvd-icon-trash-o"></a></div>
<# } #>

View File

@@ -0,0 +1,11 @@
<div class="tvd-row tvd-add-link-row">
<div class="tvd-col tvd-s4">
<div class="tvd-input-field">
<input type="text" class="tvu_leads_directUrl" id="tvu_leads_directUrl"/>
<label for="tvu_leads_directUrl"><?php echo __( "Add new link", 'thrive-ult' ); ?></label>
</div>
</div>
<div class="tvd-col tvd-s2">
<button class="tvu_leads_addDirectLink tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-green"><?php echo __( "Add Link", 'thrive-ult' ); ?></button>
</div>
</div>

View File

@@ -0,0 +1,16 @@
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s8">
<div class="tvd-vertical-align">
<a href="<#= label #>" target="_blank"><#= label #></a>
</div>
</div>
<div class="tvd-col tvd-s4">
<button class="tvu_leads_removeDirectLink tvd-btn-icon tvd-btn-icon-red tvd-right">
<span class="tvd-icon-delete2"></span>
<?php echo __( "Remove Link", 'thrive-ult' ); ?>
</button>
</div>
</div>

View File

@@ -0,0 +1 @@
<a id="<#= identifier #>" class="tvu_leads_tabFilter <#= cssClass #>" href="javascript:void(0)"><#= label #></a>

View File

@@ -0,0 +1,3 @@
<div class="tvu_leads_tabs_wrapper tvu_leads_clearfix">
<ul class="tvd-tabs tvu_leads_tabs"></ul>
</div>

View File

@@ -0,0 +1,75 @@
<div class="tvd-modal-content">
<h3 class="tvd-modal-title">
<?php echo sprintf( __( '%s - display settings', 'thrive-ult' ), "<#= model.get( 'post_title' ) #>" ) ?>
<?php tve_ult_video( 'YYOw8BGkm4g' ) ?>
</h3>
<div id="tvu-leads-options-container">
<div class="control-grid flex-start">
<div class="tvd-input-field w-200 mr-30">
<select class="tvu_leads_saved_options tvd-select2" id="tvu_load_template" data-field="load_template" data-placeholder="<?php echo __( 'Current selection', 'thrive-ult' ) ?>">
<option value=""></option>
</select>
<label for="tvu_load_template"></label>
</div>
<button class="tvu_leads_load_saved_options tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-green tvd-full-btn w-200"><?php echo __( 'Load Saved Options', 'thrive-ult' ) ?></button>
</div>
<div id="tve-message-container">
<div class="error">
<?php
$cache_plugin = tve_dash_detect_cache_plugin();
$message = $cache_plugin
? sprintf( __( 'After saving these settings, the cache data from %s plugin will be automatically cleared (this is required each time you make a change to these settings)', 'thrive-ult' ), '<strong>' . $cache_plugin . '</strong>' )
: sprintf( __( 'If you have a caching plugin installed (such as %1$sW3 Total Cache%2$s or %1$sWP Super Cache%2$s), please clear the cache after modifying these settings', 'thrive-ult' ), '<strong>', '</strong>' );
?>
<p><?php echo $message ?></p>
</div>
</div>
<div class="tvd-v-spacer vs-2"></div>
<h4>
<?php echo __( 'Display Logic', 'thrive-ult' ); ?>
<span class="inclusions-count">(0)</span>
</h4>
<p><?php echo __( 'Use these settings to configure where the campaign should be displayed:', 'thrive-ult' ) ?></p>
<div id="show_options"></div>
<div class="tvd-v-spacer vs-3"></div>
<h4 data-target="#exclusions_wrapper" class="tl-clickable tl-toggle-tab-display collapsed tvd-pointer">
<span><?php echo __( "Exclusions", 'thrive-ult' ); ?></span>
<span class="exclusions-count">(0)</span>
</h4>
<div class="tvd-relative">
<div id="exclusions_wrapper" class="tvd-not-visible">
<p><?php echo __( 'Use these settings to configure where the campaign should be HIDDEN. Attention! This will override the display logic above', 'thrive-ult' ) ?></p>
<div id="hide_options"></div>
</div>
</div>
<div class="tvd-v-spacer vs-3"></div>
<div class="tvu_leads_tabs_content tvu_leads_clearfix" style="display: block">
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s12">
<h4><?php echo __( 'Save as Template', 'thrive-ult' ); ?></h4>
<p><?php echo __( "You can save the display configuration that you've created if you'd like a template to re-use with other campaigns.", 'thrive-ult' ); ?></p>
</div>
</div>
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-l3 tvd-s4">
<div class="tvd-input-field">
<input class="tvu_leads_left tvd-skip-modal-save" type="text" name="tvu_leads_new_template_name" id="tvu_leads_new_template_name"/>
<label for="tvu_leads_new_template_name"
data-error="<?php echo __( 'Template name is required', 'thrive-ult' ) ?>"><?php echo __( 'Template name', 'thrive-ult' ); ?></label>
</div>
</div>
<div class="tvd-col tvd-l3 tvd-s4">
<button
class="tvu_leads_add_new_template tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-green"><?php echo __( 'Save Display Template', 'thrive-ult' ); ?></button>
</div>
</div>
</div>
<div class="clearfix"></div>
</div>
</div>
<div class="tvd-modal-footer control-grid">
<button class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-dark tvd-modal-close tvd-waves-effect"><?php echo __( 'Cancel', 'thrive-ult' ); ?></button>
<button class="tvu_leads_save_widget_options tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-green tvd-right"><?php echo __( 'Save & close', 'thrive-ult' ); ?></button>
</div>
<a href="javascript:void(0)" class="tvd-modal-action tvd-modal-close tvd-modal-close-x"><i class="tvd-icon-close2"></i></a>

View File

@@ -0,0 +1,3 @@
<input value="<#= id #>" id="opt-<#= ( typeof base_id !== 'undefined' ? base_id : 'opt_' ) + id #>" type="checkbox" class="tvu_leads_toggle_option" <# if (isChecked) { #> checked="checked"<# } #> />
<label for="opt-<#= ( typeof base_id !== 'undefined' ? base_id : 'opt_' ) + id #>" data-type="<#= type #>" class="tvd-truncate"><#= label #></label>

View File

@@ -0,0 +1,6 @@
<div class="tvd-row">
<div class="tvd-input-field tvd-col tvd-s4">
<input class="tvu-leads-posts tvu-leads-autocomplete" id="tvu-leads-posts" type="text"/>
<label for="tvu-leads-posts"><?php echo __( 'Search...', 'thrive-ult' ) ?></label>
</div>
</div>

View File

@@ -0,0 +1,3 @@
<div class="tvu_leads_selectedFilter">
<span><?php echo __( "Taxonomy:", 'thrive-ult' ); ?> <#= filter #></span>
</div>

View File

@@ -0,0 +1,5 @@
<a href="#<#= tab.getTabIdFromIdentifier() #>">
<# if (tab.countCheckedOptions()) { #><strong> <# }#>
<#= tab.get('label') #> (<#= tab.countCheckedOptions() #>)
<# if (tab.countCheckedOptions()) { #></strong> <# }#>
</a>

View File

@@ -0,0 +1,10 @@
<label data-type="post_tag"></label>
<div class="tvu-tags-filter" style="padding-bottom: 20px;">
<div class="tvd-row">
<div class="tvd-col tvd-s3">
<div class="tvd-input-field">
<input class="tvu-leads-tags tvu-leads-autocomplete" placeholder="<?php echo __( 'Search...', 'thrive-ult' ) ?>" type="text"/>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,14 @@
<div class="tvd-row tvd-collapse tvu-timeline-heading-row">
<div class="tvd-col tvd-s12">
<div class="tvd-inline-block tvd-relative">
<h3>
<?php echo __( 'Timeline', 'thrive-ult' ) ?>
<?php tve_ult_video( 'ehoZrTBVc-A' ) ?>
</h3>
<# if ( item.get_settings_step() === 'timeline' ) { #>
<div class="tvd-tooltip-visible tvd-fixed-right" style="min-width: 280px;"><span><?php echo __( 'Next step: setup timeline events', 'thrive-ult' ) ?></span></div>
<# } #>
</div>
</div>
</div>
<div id="tvu-timeline" class="tvu-timeline-el"></div>

View File

@@ -0,0 +1,35 @@
<div class="tvu-campaign-option tvu-campaign-absolute">
<p class="grey m-0"><?php echo __( 'Fixed Dates Campaign', 'thrive-ult' ) ?></p>
<p><?php echo __( 'Tell us when you would like the new offer to start and end', 'thrive-ult' ) ?></p>
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s6 tvd-m3">
<div class="tvd-input-field tvd-timepicker-left">
<input id="tvu-start-date" type="text" class="tvd-no-focus tvd-no-margin-bottom" value="<#= item.start && item.start.date ? item.start.date : '' #>" data-field="start_date">
<label <#= item.start && item.start.date ? 'class="tvd-active"' : '' #> for="tvu-start-date"><?php echo __( 'Start Date', 'thrive-ult' ) ?></label>
</div>
</div>
<div class="tvd-col tvd-s6 tvd-m3">
<div class="tvd-input-field timepicker-append-to">
<input id="tvu-start-hour" type="text" class="tvd-no-focus tvd-no-margin-bottom" value="<#= item.start && item.start.time ? item.start.time : '' #>" data-field="start_time">
<label <#= item.start && item.start.time ? 'class="tvd-active"' : '' #> for="tvu-start-hour"><?php echo __( 'Start Hour', 'thrive-ult' ) ?></label>
</div>
</div>
<div class="tvd-col tvd-s6 tvd-m3">
<div class="tvd-input-field tvd-timepicker-left">
<input id="tvu-end-date" type="text" class="tvd-no-focus tvd-no-margin-bottom" value="<#= item.end && item.end.time ? item.end.date : '' #>" data-field="end_date">
<label <#= item.end && item.end.date ? 'class="tvd-active"' : '' #> for="tvu-end-date"><?php echo __( 'End Date', 'thrive-ult' ) ?></label>
</div>
</div>
<div class="tvd-col tvd-s6 tvd-m3">
<div class="tvd-input-field timepicker-append-to">
<input id="tvu-end-hour" type="text" class="tvd-no-focus tvd-no-margin-bottom" value="<#= item.end && item.end.time ? item.end.time : '' #>" data-field="end_time">
<label <#= item.end && item.end.time ? 'class="tvd-active"' : '' #> for="tvu-end-hour"><?php echo __( 'End Hour', 'thrive-ult' ) ?></label>
</div>
</div>
</div>
</div>
<div>
<p class="mb-0" style="font-style: italic;"><?php echo __( 'Your current timezone settings are: ', 'thrive-ult' ) ?> <strong class="tu-timezone"><#= ThriveUlt.globals.settings.get('timezone') ? ThriveUlt.globals.settings.get('timezone') : '<?php __( 'Not Set', 'thrive-ult' ) ?>' #></strong>. <?php echo __( 'Local time is ', 'thrive-ult' ) ?> <strong
class="tu-time"><?php echo tve_ult_current_time( 'Y-m-d H:i' ); ?></strong>, <?php echo __( 'see ', 'thrive-ult' ) ?><?php echo __( ' Date & Time Settings', 'thrive-ult' ) ?></p>
</div>

View File

@@ -0,0 +1,15 @@
<p class="grey m-0"><?php echo __( 'Campaign is triggered when', 'thrive-ult' ) ?></p>
<div class="control-grid pb-5">
<select class="tvu-fluentcrm-trigger-dropdown tvd-select2">
<option value="tags"><?php echo __( 'Contact is added to tags', 'thrive-ult' ) ?></option>
</select>
</div>
<p class="grey m-0"><?php echo __( 'Which tags should trigger the countdown', 'thrive-ult' ) ?></p>
<div class="tvu-trigger-tags-select-multiple control-grid pb-5">
<select id="tvu-fluentcrm-trigger-tags" multiple="multiple"></select>
</div>
<a href="<#= kb_article #>" target="_blank">
<p class="help-link m-0 mt-10 tvu-btn-flat"><?php echo __( 'Click here for help with incoming webhooks', 'thrive-ult' ) ?></p>
</a>

View File

@@ -0,0 +1,16 @@
<p class="grey m-0 mb-5"><?php echo __( 'Click to copy the webhook URL' ) ?></p>
<div class="tvd-copy-row control-grid tvd-webhook p-20">
<div class="tvd-col p-0 tvd-webhook-link">
<div class="tvd-input-field">
<input id="tu-webhook-genreated-url" class="tvd-no-focus tu-webhook-generated-url m-0" type="text" value="<#= url #>">
</div>
</div>
<div class="tvd-col p-0">
<a class="tve-copy-to-clipboard tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-blue" href="javascript:void(0)">
<span class="tvd-copy-text"><?php echo __( 'Copy', 'thrive-ult' ) ?></span>
</a>
</div>
</div>
<a href="<#= kb_article #>" target="_blank">
<p class="help-link m-0 mt-10 tvu-btn-flat"><?php echo __( 'Click here for help with incoming webhooks', 'thrive-ult' ) ?></p>
</a>

View File

@@ -0,0 +1,7 @@
<input type="checkbox" id="tve-rolling-repeat-<#= item.get('ID') #>" name="repeat-on-<#= item.get('ID') #>" class="tvu-rolling-repeat-check" <#= item.get('checked') === true ? checked="checked" : '' #> <#= item.get('disabled') === true ? disabled="disabled" : '' #> />
<label for="tve-rolling-repeat-<#= item.get('ID') #>">
<?php echo __( "<#= item.get('label') #>", 'thrive-ult' ); ?>
</label>

View File

@@ -0,0 +1,21 @@
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s12 tvd-m4">
<div class="tvd-input-field">
<input id="tvu-rolling-day-duration" class="tvd-no-margin-bottom tvd-no-focus" type="text" value="<#= item.duration ? item.duration : 1 #>" data-field="duration" maxlength="2">
<label class="tvd-active" for="tvu-rolling-day-duration">
<?php echo __( 'Duration (hours)', 'thrive-ult' ) ?>
</label>
</div>
</div>
<div class="tvd-col tvd-s12 tvd-m4">
<div class="tvd-input-field tvu-no-margin-select">
<select class="tvu-rolling-repeat" id="tvu-rolling-repeat" data-max-height="450px">
<# _.times( 31, function ( index ) { var i = index + 1 #>
<option
<#= ( item.repeat == i ? ' selected' : '' ) #> value="<#= i #>"><#= i #></option>
<# } ) #>
</select>
<label for="tvu-rolling-repeat"><?php echo __( 'Repeat every (days)', 'thrive-ult' ) ?></label>
</div>
</div>
</div>

View File

@@ -0,0 +1,4 @@
<input <#= ids && _.contains(ids, item.get('ID')) ? 'checked="checked"' : '' #> type="checkbox" id="tvu-lead-conversion-<#= item.get('ID') #>" value="<#= item.get('ID') #>" class="tvu-lead-conversion" />
<label for="tvu-lead-conversion-<#= item.get('ID') #>">
<#= item.get('post_title') #>
</label>

View File

@@ -0,0 +1,16 @@
<# if( collection || shortcodes || thriveBoxes || thriveQuizzes || leadGenPages || lightBoxes) { #>
<br>
<div class="control-grid flex-start tvd-no-padding-bottom">
<span class="tvd-no-margin grey"><?php echo __( 'Which forms on your site should trigger the countdown? ', 'thrive-ult' ); ?></span>
<span class="tvd-icon-info-gray tvd-tooltipped" data-position="top" data-tooltip="<?php echo __( 'Select any form youve built in Thrive Leads (search by lead group, Thrivebox or shortcode) and any quiz builder quiz that contains an optin gate. You can also search for any page built in Thrive Architect on your site. Any Thrive Architect lead generation element submission on the selected page will trigger the lockdown.', 'thrive-ult' ) ?>"></span>
</div>
<# if((collection && collection.length == 0) && (shortcodes && shortcodes.length == 0) && (thriveBoxes && thriveBoxes.length == 0) && (thriveQuizzes && thriveQuizzes.length == 0)&& (leadGenPages && leadGenPages.length == 0)&& (lightBoxes && lightBoxes.length == 0) ) { #>
<div class="tvu-no-conversion-posts tvd-small-text grey"><?php echo __( 'No trigger defined', 'thrive-ult' ); ?></div>
<# } else { #>
<div class="tvu-evergreen-leads-checkboxes tvd-row">
<select id="tvu-trigger-form-ids" class="tvd-browser-default" multiple="multiple"></select>
</div>
<# } #>
<div class="tvd-v-spacer"></div>
<# } #>

View File

@@ -0,0 +1,2 @@
<a href="#dashboard/campaign/<#= item.get('ID')#>" class="tvd-modal-close"><#= item.get('post_title') #></a>

View File

@@ -0,0 +1,25 @@
<div class="tvd-v-spacer"></div>
<div class="tvd-input-field">
<input id="tvu-specific-url" type="text" value="" data-field="post_search">
<label for="tvu-specific-url"><?php echo __( 'Search for content on site', 'thrive-ult' ) ?></label>
</div>
<div class="control-grid flex-start pb-0">
<div class="control-grid flex-start w-200 mr-30">
<span class="tvd-no-margin grey"><?php echo __( 'Redirect when expired?', 'thrive-ult' ) ?></span>
<span class="tvd-icon-info-gray tvd-tooltipped" data-position="top" data-tooltip="<?php echo __( 'Activate this toggle to set a cookie on each visitor who lands on the promotion page for the first time. This allows you to redirect the visitors to a different page if they land on the promotion page after the cookie has expired.', 'thrive-ult' ) ?>"></span>
</div>
<div class="tvd-switch pb-20">
<label>
<?php echo __( 'NO', 'thrive-ult' ) ?>
<input class="tvu-redirect-switch" <#= settings.redirect == 1 ? 'checked' : '' #> type="checkbox">
<span id="tvu-repeat-campaign-switch" class="tvd-lever"></span>
<?php echo __( 'YES', 'thrive-ult' ) ?>
</label>
</div>
</div>
<div class="tvd-input-field tvd-redirect-input" <#= settings.redirect == 1 ? '' : ' style="display: none"' #>>
<input id="tvu-redirect-url" type="text" value="" data-field="post_search_redirect">
<label for="tvu-redirect-url"><?php echo __( 'Search for content on site', 'thrive-ult' ) ?></label>
</div>

View File

@@ -0,0 +1,156 @@
<p class="grey m-0"><?php echo __( 'What type of evergreen countdown would you like?', 'thrive-ult' ) ?></p>
<div class="control-grid mb-0">
<select class="tvu-real-time tvd-select2">
<option value="absolute"><?php echo __( 'Absolute - the countdown duration is exactly the same for every user', 'thrive-ult' ) ?></option>
<option value="realistic"
<#= item.real == 1 ? 'selected' : '' #> >
<?php echo __( 'Minimum duration - the countdown ends at a specified time of day after the minimum duration is met', 'thrive-ult' ) ?>
</option>
</select>
</div>
<p class="grey tvu-duration-label-realistic mt-0 control-grid flex-start <#= item.real == 1 ? '' : 'hidden' #>">
<?php echo __( 'Set minimum countdown duration', 'thrive-ult' ) ?>
<a href="https://thrivethemes.com/tkb_item/how-to-use-the-absolute-and-minimum-duration-options-when-creating-an-evergreen-campaign/" class="tvd-icon-info-gray tvd-tooltipped"
data-position="top" data-tooltip="<?php echo __( 'Learn more about this option', 'thrive-ult' ) ?>" target="_blank"></a>
</p>
<p class="grey tvu-duration-label-absolute mt-0 <#= item.real == 1 ? 'hidden' : '' #>">
<?php echo __( 'Set countdown duration', 'thrive-ult' ) ?>
</p>
<div class="control-grid flex-start pb-0">
<div class="tvd-input-field mr-30">
<input id="tvu-evergreen-days" class="tvu-evergreen-duration" maxlength="3" type="text" value="<#= item.days_duration #>" data-field="days_duration">
<label for="tvu-evergreen-days">
<?php echo __( 'Days', 'thrive-ult' ) ?>
</label>
</div>
<div class="tvd-input-field mr-30">
<input id="tvu-evergreen-hours" class="tvu-evergreen-duration" maxlength="3" type="text" value="<#= item.hours_duration #>" data-field="hours_duration">
<label for="tvu-evergreen-hours">
<?php echo __( 'Hours', 'thrive-ult' ) ?>
</label>
</div>
<div class="tvd-input-field mr-30">
<input id="tvu-evergreen-minutes" class="tvu-evergreen-duration" maxlength="3" type="text" value="<#= item.minutes_duration #>" data-field="minutes_duration">
<label for="tvu-evergreen-minutes">
<?php echo __( 'Minutes', 'thrive-ult' ) ?>
</label>
</div>
<div class="tvd-input-field">
<input id="tvu-evergreen-seconds" class="tvu-evergreen-duration" maxlength="3" type="text" value="<#= item.seconds_duration #>" data-field="seconds_duration">
<label for="tvu-evergreen-seconds">
<?php echo __( 'Seconds', 'thrive-ult' ) ?>
</label>
</div>
</div>
<div class="tvu-real-time-wrapper tvd-margin-bottom control-grid wrap flex-start m-0 p-0"<#= item.real == 1 ? '' : ' style="display: none"' #>>
<p class="grey fill mb-0"><?php echo __( "What time should the countdown end after the minimum duration is met?", 'thrive-ult' ) ?></p>
<div class="control-grid">
<div class="tvd-input-field timepicker-append-to tvd-input-field-medium tvd-no-padding-left">
<input id="tvu-real-time" type="text" class="tvd-no-focus tvd-no-margin w-75"
value="<#= item.realtime ? item.realtime : '' #>" data-field="real_time">
</div>
<p class="tvd-inline-block tvd-vertical-align ml-20 mb-0 mt-0">
<?php echo __( "o'clock. ", 'thrive-ult' ) ?>
</p>
</div>
<div class="control-grid ml-20">
<p class="tvd-inline-block tvd-vertical-align tvd-inline-block tvd-vertical-align mr-20 mt-0 mb-0">
<?php echo __( 'Timezone:', 'thrive-ult' ) ?>
</p>
<div class="tvd-input-field mt-0 mb-0 mr-20 w-175">
<select id="tvu-evergreen-gmt-offset" class="tvd-select2" name="gmt_offset" aria-describedby="timezone-description">
<?php echo wp_timezone_choice( get_user_locale() ); ?>
</select>
</div>
<p class="tvd-inline-block tvd-vertical-align tvd-no-margin gray-text tvd-small-text">
<?php echo __( 'Universal time is: ', 'thrive-ult' ) ?>
<?php echo date( 'Y-m-d h-i-s' ) ?>
</p>
</div>
</div>
<div class="control-grid flex-start pb-0 mt-10">
<div class="control-grid flex-start w-200 mr-30">
<span class="tvd-no-margin grey"><?php echo __( 'Activate Lockdown?', 'thrive-ult' ) ?></span>
<span class="tvd-icon-info-gray tvd-tooltipped" data-position="top" data-tooltip="<?php echo __( 'Lockdown campaigns are more secure and work by restricting access to email subscribers only', 'thrive-ult' ) ?>"></span>
</div>
<div class="tvd-switch pb-20">
<label>
<?php echo __( 'NO', 'thrive-ult' ) ?>
<input class="tvu-lockdown-switch" <#= !lockdown == 1 ? '' : 'checked' #> type="checkbox">
<span class="tvd-lever"></span>
<?php echo __( 'YES', 'thrive-ult' ) ?>
</label>
</div>
</div>
<div class="control-grid flex-start pb-0">
<div class="control-grid flex-start w-200 mr-30">
<span class="tvd-no-margin grey"><?php echo __( 'Repeat this campaign?', 'thrive-ult' ) ?></span>
<span class="tvd-icon-info-gray tvd-tooltipped" data-position="top" data-tooltip="<?php echo __( 'Optionally restart the campaign after the initial promotion period has ended. This allows you to reopen the offer for a limited period as a final attempt to convert anyone who missed the initial promotion window', 'thrive-ult' ) ?>"></span>
</div>
<div class="tvd-switch pb-20">
<label>
<?php echo __( 'NO', 'thrive-ult' ) ?>
<input class="tvu-repeat-switch" <#= item.evergreen_repeat == 1 ? 'checked' : '' #> type="checkbox">
<span id="tvu-repeat-campaign-switch" class="tvd-lever"></span>
<?php echo __( 'YES', 'thrive-ult' ) ?>
</label>
</div>
</div>
<div class="tvu-gray-box tvu-repeat-wrapper tvd-margin-bottom"<#= item.evergreen_repeat == 1 ? '' : ' style="display: none"' #>>
<p class="tvd-inline-block tvd-vertical-align tvd-no-margin">
<?php echo __( "Show this campaign again after", 'thrive-ult' ) ?>
</p>
<div class="tvd-input-field tvd-inline-block tvd-input-field-small">
<input id="tvu-evergreen-expire" class="tvd-no-margin" maxlength="5" type="text"
value="<#= item.end && typeof item.end !== 'object' ? item.end : '' #>" data-field="end">
</div>
<p class="tvd-inline-block tvd-vertical-align tvd-no-margin">
<?php echo __( 'days.', 'thrive-ult' ) ?>
</p>
</div>
<div class="tvd-v-spacer"></div>
<p class="grey m-0"><?php echo __( 'When should the countdown start', 'thrive-ult' ) ?></p>
<div class="control-grid pb-5">
<select class="tvu-evergreen-settings tvd-select2">
<# if(collection instanceof ThriveUlt.collections.LeadGroupsCollection) { #>
<option value="conversion"
<#= item.trigger.type == 'conversion' ? 'selected' : '' #>><?php echo __( 'When a lead generation form is submitted', 'thrive-ult' ) ?></option>
<# } #>
<# if(lockdown == 1) { #>
<option value="promotion"
<#= item.trigger.type == 'promotion' ? 'selected' : '' #>><?php echo __( 'Visit to promotion page', 'thrive-ult' ) ?></option>
<option value="webhook"
<#= item.trigger.type == 'webhook' ? 'selected' : '' #>><?php echo __( '3rd party event', 'thrive-ult' ); ?></option>
<# } else { #>
<option value="first"
<#= item.trigger.type == 'first' ? 'selected' : '' #>><?php echo __( 'First visit to site', 'thrive-ult' ) ?></option>
<option value="url"
<#= item.trigger.type == 'url' ? 'selected' : '' #>><?php echo __( 'Visit to a specific page', 'thrive-ult' ) ?></option>
<# } #>
</select>
</div>
<div id="tvu-trigger-description" class="tvd-small-text tvu-campaign-trigger-description grey"></div>
<div id="tvu-evergreen-settings"></div>
<div class="tvu-evergreen-linked">
<p>
<strong><?php echo __( "This campaign will automatically start when a conversion event of the following campaigns are met", 'thrive-ult' ); ?>
: </strong></p>
<div class="tvu-evergreen-linked-to"></div>
</div>

View File

@@ -0,0 +1,5 @@
<div class="control-grid mb-0 mt-20">
<select class="tvu-webhook-api tvd-browser-default tvd-select2 " id="tvu-webhook-api"></select>
</div>
<div class="tvu-api-integration"></div>

View File

@@ -0,0 +1,30 @@
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s12 tvd-m4">
<div class="tvd-input-field">
<input id="tvu-rolling-duration" maxlength="3" type="text" value="<#= item.duration ? item.duration : 1 #>" class="tvu-rolling-monthly tvd-no-margin-bottom" data-field="duration">
<label class="tvd-active" for="tvu-rolling-duration"><?php echo __( 'Duration (days)', 'thrive-ult' ) ?></label>
</div>
</div>
<div class="tvd-col tvd-s12 tvd-m4">
<div class="tvd-input-field tvu-no-margin-select">
<select class="tvu-rolling-repeat" id="tvu-rolling-repeat-month">
<# _.times( 12, function ( index ) { var i = index + 1 #>
<option
<#= ( item.repeat == i ? ' selected' : '' ) #> value="<#= i #>"><#= i #></option>
<# } ) #>
</select>
<label for="tvu-rolling-repeat-month"><?php echo __( 'Repeat every (months)', 'thrive-ult' ) ?> </label>
</div>
</div>
</div>
<div class="tvd-v-spacer"></div>
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s12">
<p class="tvu-repeat-paragraph">
<?php echo __( 'Repeat On:', 'thrive-ult' ) ?>
</p>
</div>
<div class="tvd-col tvd-s12">
<div class="tvu-monthly-repeats-wrapper"></div>
</div>
</div>

View File

@@ -0,0 +1,91 @@
<p class="grey m-0"><?php echo __( 'Recurring Campaign', 'thrive-ult' ) ?></p>
<p><?php echo __( 'Tell us when you would like the new offer to start and how many days the campaign should last for', 'thrive-ult' ) ?></p>
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s12 tvd-m4">
<div class="tvd-input-field tvd-timepicker-left">
<input id="tvu-start-date" type="text" class="tvd-no-focus tvd-no-margin-bottom" value="<#= settings.start && settings.start.date ? settings.start.date : '' #>" data-field="start_date">
<label <#= settings.start ? 'class="tvd-active"' : '' #> for="tvu-start-date"><?php echo __( 'Start date', 'thrive-ult' ) ?></label>
</div>
</div>
<div class="tvd-col tvd-s12 tvd-m4">
<div class="tvd-input-field timepicker-append-to">
<input id="tvu-start-hour" type="text" class="tvd-no-focus tvd-no-margin-bottom" value="<#= settings.start && settings.start.time ? settings.start.time : '' #>" data-field="start_time">
<label <#= settings.start ? 'class="tvd-active"' : '' #> for="tvu-start-hour"><?php echo __( 'Start hour', 'thrive-ult' ) ?></label>
</div>
</div>
<div class="tvd-col tvd-s12 tvd-m4">
<div class="tvd-input-field tvu-no-margin-select">
<select name="" id="tvu-select-recurrence-change" class="tvu-campaign-recurrence" data-field="recurrence">
<option value="daily"
<#= item.get('rolling_type') == 'daily' ? 'selected' : '' #>><?php echo __( 'Daily', 'thrive-ult' ) ?></option>
<option value="weekly"
<#= item.get('rolling_type') == 'weekly' ? 'selected' : '' #>><?php echo __( 'Weekly', 'thrive-ult' ) ?></option>
<option value="monthly"
<#= item.get('rolling_type') == 'monthly' ? 'selected' : '' #>><?php echo __( 'Monthly', 'thrive-ult' ) ?></option>
<option value="yearly"
<#= item.get('rolling_type') == 'yearly' ? 'selected' : '' #>><?php echo __( 'Yearly', 'thrive-ult' ) ?></option>
</select>
<label for="tvu-select-recurrence-change"><?php echo __( 'Repeats', 'thrive-ult' ) ?></label>
</div>
</div>
</div>
<div class="tvd-v-spacer"></div>
<div id="tvu-rolling-options"></div>
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s12">
<p class="tvd-no-margin"><?php echo __( "Ends:", 'thrive-ult' ); ?> </p>
</div>
<div class="tvd-col tvd-s6 tvd-m2">
<p class="tvu-align-radio">
<input class="" name="ends" type="radio" value="never" id="tve-rolling-end-never" <#= settings.end === null ? 'checked' : '' #> />
<label for="tve-rolling-end-never"><?php echo __( "Never", 'thrive-ult' ); ?></label>
</p>
</div>
<div class="tvd-col tvd-s6 tvd-m4">
<div class="tvd-row">
<div class="tvd-col tvd-s2">
<p>
<input class="" name="ends" type="radio" value="after" id="tve-rolling-end-after" <#= settings.end && settings.end.length < 4 ? 'checked' : '' #>/>
<label for="tve-rolling-end-after"></label>
</p>
</div>
<div class="tvd-col tvd-s10">
<div class="tvd-input-field">
<input class="tvd-no-margin-bottom" id="tvu-rolling-end-after-in" type="text" value="<#= settings.end && settings.end.length < 4 ? settings.end : '' #>" data-field="occurrences_number" maxlength="4">
<label <#= settings.end && settings.end.length < 4 ? 'class="tvd-active"' : '' #> for="tvu-rolling-end-after-in" class="tve_text"><?php echo __( 'After (occurrences)', 'thrive-ult' ) ?></label>
</div>
</div>
</div>
</div>
<div class="tvd-col tvd-s6 tvd-m4">
<div class="tvd-row">
<div class="tvd-col tvd-s2">
<p>
<input class="" name="ends" type="radio" value="date" id="tve-rolling-end-on" <#= settings.end !== null && typeof settings.end === 'object' ? 'checked' : '' #> />
<label for="tve-rolling-end-on"></label>
</p>
</div>
<div class="tvd-col tvd-s10">
<div class="tvd-input-field">
<input id="tvu-end-date" type="text" class="tvd-no-focus tvd-no-margin-bottom" value="<#= settings.end !== null && typeof settings.end === 'object' && settings.end.date ? settings.end.date : '' #>" data-field="end_date">
<label <#= settings.end && settings.end.length > 4 ? 'class="tvd-active"' : '' #> for="tvu-end-date"><?php echo __( 'On', 'thrive-ult' ) ?></label>
</div>
</div>
</div>
</div>
<div class="tvd-col tvd-s6 tvd-m2">
<div class="tvd-input-field timepicker-append-to">
<input id="tvu-end-hour" type="text" class="tvd-no-focus tvd-no-margin-bottom" value="<#= settings.end !== null && typeof settings.end === 'object' && settings.end.time ? settings.end.time : '' #>" data-field="end_time">
<label <#= settings.end ? 'class="tvd-active"' : '' #> for="tvu-end-hour"><?php echo __( 'End hour', 'thrive-ult' ) ?></label>
</div>
</div>
</div>
<div>
<h4><?php echo __( 'Description', 'thrive-ult' ) ?></h4>
<p><?php echo __( 'This campaign will repeat every', 'thrive-ult' ) ?> <span class="tvu-campaign-rolling-repeat"></span> <span class="tvu-campaign-rolling-day">on </span></p>
</div>
<div>
<p style="font-style: italic;"><?php echo __( 'Your current timezone settings are: ', 'thrive-ult' ) ?> <strong class="tu-timezone"><#= ThriveUlt.globals.settings.get('timezone') ? ThriveUlt.globals.settings.get('timezone') : '<?php __( 'Not Set', 'thrive-ult' ) ?>' #></strong>. <?php echo __( 'Local time is ', 'thrive-ult' ) ?> <strong
class="tu-time"><?php echo tve_ult_current_time( 'Y-m-d H:i' ); ?></strong>, <?php echo __( 'see ', 'thrive-ult' ) ?><?php echo __( ' Date & Time Settings', 'thrive-ult' ) ?></p>
</div>

View File

@@ -0,0 +1,30 @@
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s12 tvd-m4">
<div class="tvd-input-field">
<input maxlength="2" id="tvu-rolling-duration" type="text" value="<#= item.duration ? item.duration : 1 #>" class="tvu-rolling-weekly tvd-no-margin-bottom" data-field="duration">
<label class="tvd-active" for="tvu-rolling-duration"><?php echo __( 'Duration (days)', 'thrive-ult' ) ?></label>
</div>
</div>
<div class="tvd-col tvd-s12 tvd-m4">
<div class="tvd-input-field tvu-no-margin-select">
<select class="tvu-rolling-repeat" id="tvu-rolling-repeat-weekly">
<# _.times( 10, function ( index ) { var i = index + 1 #>
<option
<#= ( item.repeat == i ? ' selected' : '' ) #> value="<#= i #>"><#= i #></option>
<# } ) #>
</select>
<label for="tvu-rolling-repeat-weekly"><?php echo __( 'Repeat every (weeks)', 'thrive-ult' ) ?> </label>
</div>
</div>
</div>
<div class="tvd-v-spacer"></div>
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s12">
<p class="tvu-repeat-paragraph">
<?php echo __( 'Repeat On:', 'thrive-ult' ) ?>
</p>
</div>
<div class="tvd-col tvd-s12">
<div class="tvu-weekly-repeats-wrapper"></div>
</div>
</div>

View File

@@ -0,0 +1,19 @@
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s12 tvd-m4">
<div class="tvd-input-field">
<input id="tvu-rolling-year-duration" maxlength="4" class="tvd-no-margin-bottom" type="text" value="<#= item.duration ? item.duration : 1 #>" data-field="duration">
<label class="tvd-active" for="tvu-rolling-year-duration"><?php echo __( 'Duration (days)', 'thrive-ult' ) ?></label>
</div>
</div>
<div class="tvd-col tvd-s12 tvd-m4">
<div class="tvd-input-field tvu-no-margin-select">
<select class="tvu-rolling-repeat" id="tvu-rolling-repeat-year">
<# _.times( 5, function ( index ) { var i = index + 1 #>
<option
<#= ( item.repeat == i ? ' selected' : '' ) #> value="<#= i #>"><#= i #></option>
<# } ) #>
</select>
<label for="tvu-rolling-repeat-year"><?php echo __( 'Repeat every (years)', 'thrive-ult' ) ?> </label>
</div>
</div>
</div>

View File

@@ -0,0 +1,21 @@
<div class="tvd-col tvd-s4">
<div class="tvd-card tvd-white tvd-small tvd-valign-wrapper">
<div class="tvd-card-content tvd-center-align tvd-valign">
<span class="tvu-conversion-icon <#= item.get('trigger_options').trigger == ThriveUlt.util.trigger_type.conversion ? 'tvu-icon-envelope' : 'tvu-icon-ext-link' #>"></span>
<p>
<#= item.get('trigger_options').trigger == ThriveUlt.util.trigger_type.conversion ? 'User subscription' : 'Visit to conversion <br/> page' #>
</p>
</div>
</div>
</div>
<div class="tvd-col tvd-s4" <#= item.get('trigger_options').event == '' ? 'style="display: none"' : '' #>>
<div class="tvd-card tvd-white tvd-small tvd-valign-wrapper">
<div class="tvd-card-content tvd-center-align tvd-valign">
<span class="tvu-action-icon <#= item.get('trigger_options').trigger == ThriveUlt.util.trigger_type.conversion ? 'tvu-icon-signout' : 'tvu-icon-move' #>"></span>
<p>
<#= item.get('trigger_options').event == ThriveUlt.util.conversion_event.end ? 'End Campaign' : 'Move to another <br/> campaign' #>
</p>
</div>
</div>
</div>

View File

@@ -0,0 +1,38 @@
<div class="tvd-card tvd-white ">
<ul class="tvd-collection tvd-with-header tvd-collection-no-border">
<li class="tvd-collection-header tvu-event-title">
<h4><?php echo __( 'Conversion:', 'thrive-ult' ) ?>
<#= item.get('trigger_options').trigger == ThriveUlt.util.trigger_type.conversion ? 'TL Opt-in' : 'Visit to Conversion Page' #>
</h4>
<div class="tvu-conversion-action-btns tvd-inline-block">
<a class="tvu-bluegray-text tvu-btn-icon-small tvu-campaign-edit" href="javascript:void(0)">
<i class="tvd-icon-pencil"></i>
</a>
<a class="tvu-bluegray-text tvu-btn-icon-small tvu-campaign-delete" href="javascript:void(0)">
<i class="tvd-icon-trash-o tvd-left"></i>
</a>
</div>
</li>
<li class="tvd-collection-item tvu-conversion-event-box">
<p class="tvd-no-margin">
<span class="tvd-icon-chevron-right tvu-bluegray-text"></span>
<?php echo __( 'Ends current Campaign', 'thrive-ult' ) ?>
</p>
<# if(campaign) { #>
<p class="tvd-no-margin">
<span class="tvd-icon-chevron-right tvu-bluegray-text"></span>
<?php echo __( 'Moves to campaign ', 'thrive-ult' ) ?>
<a <# if(!campaign.get( 'designs' ) || !campaign.get( 'designs' ).size() || !campaign.checkDesignsTemplate() || !campaign.get('has_display_settings') || campaign.get( 'status' ) != ThriveUlt.util.status.running) { #> class="tvd-text-red tvd-relative" <# } #> href="#dashboard/campaign/<#= campaign.get( 'ID' ) #>">
<strong> <#= campaign.get( 'post_title' ) #> </strong>
<# if(!campaign.get( 'designs' ) || !campaign.get( 'designs' ).size() || !campaign.checkDesignsTemplate() || !campaign.get('has_display_settings')) { #>
<span class="tvd-tooltip-visible tvd-fixed-bottom tvd-tooltip-visible-big"><span><?php echo __( 'Tip: Complete the setup for this campaign, to enable this conversion event.', 'thrive-ult' ) ?></span></span>
<# } else if ( campaign.get( 'status' ) != ThriveUlt.util.status.running ) { #>
<span class="tvd-tooltip-visible tvd-fixed-bottom"><span><?php echo __( 'Tip: You need to start the linked campaign', 'thrive-ult' ) ?></span></span>
<# } #>
</a>
</p>
<# } #>
</li>
</ul>
</div>

View File

@@ -0,0 +1,4 @@
<input <#= end_id && end_id == item.get('ID') ? 'checked' : '' #> type="radio" id="tvu-campaign-conversion-<#= item.get('ID') #>" name="tvu-campaign-conversion" value="<#= item.get('ID') #>" class="tvu-campaign-conversion" />
<label for="tvu-campaign-conversion-<#= item.get('ID') #>" class="tvd-truncate">
<#= item.get('post_title') #>
</label>

View File

@@ -0,0 +1,9 @@
<h4><?php echo __( 'Select a campaign to move to or create a new evergreen campaign', 'thrive-ult' ) ?></h4>
<div id="tvu-campaign-move-wrapper" class="tvd-row"></div>
<# if(collection.length === 0) { #>
<p><?php echo __( "There are no Evergreen Campaigns to move to", 'thrive-ult' ); ?></p>
<# } #>
<a href="javascript:void(0)" id="tvu-add-evergreen-campaign" class="tvu-add-evergreen-campaign tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-blue tvd-btn-small tvd-inline-block"><?php echo __( '+ Add New', 'thrive-ult' ) ?></a>
<div class="tvd-v-spacer"></div>

View File

@@ -0,0 +1,4 @@
<input <#= ids && typeof ids !== 'number' && ids.indexOf(item.get('ID')) > -1 ? 'checked' : '' #> type="checkbox" id="tvu-lead-conversion-<#= item.get('ID') #>" value="<#= item.get('ID') #>" class="tvu-lead-conversion" />
<label for="tvu-lead-conversion-<#= item.get('ID') #>" class="tvd-truncate">
<#= item.get('post_title') #>
</label>

View File

@@ -0,0 +1,22 @@
<# if(collection.length == 0) { #>
<div class="tvu-no-conversion-posts"><?php echo __( "No Lead Groups defined", 'thrive-ult' ); ?></div>
<# } else { #>
<h4><?php echo __( 'User subscribes to Lead Groups', 'thrive-ult' ) ?>:</h4>
<div class="tvu-conversion-leads-checkboxes tvd-row"></div>
<div class="tvd-v-spacer"></div>
<# } #>
<# if(thriveBoxes.length == 0) { #>
<div class="tvu-no-conversion-posts"><?php echo __( "No ThriveBoxes defined", 'thrive-ult' ); ?></div>
<# } else { #>
<h4><?php echo __( 'User subscribes to ThriveBoxes', 'thrive-ult' ) ?>:</h4>
<div class="tvu-conversion-thrivebox-checkboxes tvd-row"></div>
<# } #>
<# if(shortcodes.length == 0) { #>
<div class="tvu-no-conversion-posts"><?php echo __( "No Shortcodes defined", 'thrive-ult' ); ?></div>
<# } else { #>
<h4><?php echo __( 'User subscribes to Shortcodes', 'thrive-ult' ) ?>:</h4>
<div class="tvu-conversion-shortcodes-checkboxes tvd-row"></div>
<# } #>

View File

@@ -0,0 +1,6 @@
<h4><?php echo __( 'Visit to conversion page', 'thrive-ult' ) ?></h4>
<div class="tvd-v-spacer vs-half"></div>
<div class="tvd-input-field">
<input id="tvu-specific-url" type="text" value="" data-field="conversion_page">
<label for="tvu-specific-url"><?php echo __( 'Search for content on site', 'thrive-ult' ) ?></label>
</div>

View File

@@ -0,0 +1,35 @@
<h3 class="tvd-title">
<?php echo __( 'Multi Page Campaigns', 'thrive-ult' ) ?>&nbsp;&nbsp;
<a class="tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-small click tvu-add-new-campaign">
<?php echo __( 'Add New', 'thrive-ult' ); ?>
</a>
</h3>
<div class="" id="tvu-no-campaign-text">
<p>
<?php echo sprintf(
__( "You don't have any campaigns set up yet. Click %s below to start setting up your first one or %s.", 'thrive-ult' ),
'<strong>' . __( 'New Campaign', 'thrive-ult' ) . '</strong>',
tve_ult_video( 'jW01JfxSq5I', __( 'watch a Quick Start Tutorial', 'thrive-ult' ), '', false )
) ?>
</p>
</div>
<div class="tvd-v-spacer"></div>
<div class="tvd-row" id="tvu-campaigns-list">
<div class="tvd-col tvd-s6 tvd-ms6 tvd-m4 tvd-l3 tvu-add-campaign tvd-pointer">
<div class="tvd-card tvd-large tvd-card-new tvd-valign-wrapper">
<div class="tvd-card-content tvd-valign tvd-center-align">
<i class="tvd-icon-plus tvd-icon-rounded tvd-icon-medium"></i>
<h4><?php echo __( 'New Campaign', 'thrive-ult' ) ?></h4>
</div>
</div>
</div>
</div>
<div class="tvd-row">
<a href="#dashboard/archived-campaigns" id="tvu-add-conversion-event"
class="tvu-add-conversion-event tvd-btn tvd-btn-blue tvd-waves-effect tvd-waves-light tvd-margin-left">
<?php echo __( 'Archived campaigns', 'thrive-ult' ) ?>
</a>
</div>

View File

@@ -0,0 +1,24 @@
<div class="tvd-card tvd-medium-xxsmall tvd-red tve-delete-design-card" tabindex="-1">
<div class="tvd-card-content tvd-center-align">
<h4 class="tvd-margin-top">
<?php echo __( 'Are you sure you want to delete this design?', 'thrive-ult' ) ?>
</h4>
<p>
<?php echo __( 'By deleting a design you will also delete the actions related to it on the timeline.', 'thrive-ult' ) ?>
</p>
</div>
<div class="tvd-card-action">
<div class="tvd-row">
<div class="tvd-col tvd-s12 tvd-m6">
<a class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-light tvd-left tvu-delete-yes">
<?php echo __( "Yes, delete", 'thrive-ult' ) ?>
</a>
</div>
<div class="tvd-col tvd-s12 tvd-m6">
<a class="tvd-btn-flat tvd-btn-flat-primary tvd-btn-flat-light tvd-right tvu-delete-no">
<?php echo __( "No, keep it", 'thrive-ult' ) ?>
</a>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,45 @@
<div class="tvd-card tvd-white tvd-medium-xxsmall">
<# if ( item.get('tpl')=='' ){ #>
<div class="tvu-card-text">
<span class="tvu-required-design"><#=item.thumb()#></span>
</div>
<# }else{ #>
<div class="tvd-card-image tvu-<#=item.get('post_type')#>-image" style="background-image: url('<#=item.thumb()#>');background-size:cover;height: 100%;">
<img src="<#=item.thumb()#>" alt="">
</div>
<# } #>
<div class="tvd-badge tvu-<#=item.get('post_type')#>"><#=item.get('type_nice_name')#></div>
<div class="tvd-card-action">
<div class="tvd-row">
<div class="tvd-col tvd-s12 tvd-m6">
<h4>
<#= item.get('post_title') #>
</h4>
</div>
<div class="tvd-col tvd-s12 tvd-m6">
<div class="tvu-campaign-actions <#= item.get('tpl')? '':'tvu-design-card-without-template' #> tvd-right">
<# if ( item.get('tpl')=='' ) { #>
<div class="tvd-tooltip-visible tvd-fixed-bottom tvu-adjust-under-edit"><span><?php echo __( 'Choose a template for this design', 'thrive-ult' ) ?></span></div>
<# } #>
<# if( item.get( 'post_type' ) === 'shortcode' ) { #>
<a class="tvu-get-shortcode tvu-icon-gray tvu-btn-icon-small">
<i class="tvu-icon-code"></i>
</a>
<# } #>
<# if( item.get( 'post_type' ) === 'header-bar' ) { #>
<a class="tvu-top-ribbon-settings tvu-icon-gray tvu-btn-icon-small">
<i class="tvd-icon-settings"></i>
</a>
<# } #>
<a class="tvu-edit-design tvu-icon-gray tvu-btn-icon-small"
href="<#= item.get('tcb_edit_url') #>" target="_blank">
<i class="tvd-icon-pencil"></i>
</a>
<a class="tvu-delete-design tvu-icon-gray tvu-btn-icon-small">
<i class="tvd-icon-trash-o"></i>
</a>
</div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,3 @@
<p>
<span class="tvd-icon-chevron-right tvu-bluegray-text"></span> <#= item.getFullName() #>
</p>

View File

@@ -0,0 +1,28 @@
<div class="tvd-row tvd-collapse tvd-no-mb">
<div class="tvd-col tvd-s4">
<span class="tvu-vertical-align">
<#=design.get( 'post_title' )#>
</span>
</div>
<div class="tvd-col tvd-s2 tvd-center-align">
<span class="tvu-vertical-align">
<input id="event-design-<#=design.get('ID')#>" type="checkbox" class="tvu-event-design-display" value="1"<#=design.get( 'event_display' ) ? ' checked' : ''#>>
<label style="padding-left: 20px;" for="event-design-<#=design.get('ID')#>"></label>
</span>
</div>
<div class="tvd-col tvd-s6">
<div class="tvd-no-margin tvu-event-design-state-container"
<#=design.get( 'event_display' ) ? '' : ' style="display:none"'#>>
<select class="tvu-event-design-state">
<option value="<#=design.get( 'ID' )#>"
<#=design.get( 'event_state_selected' ) ? ' selected' : ''#>> [ <?php echo __( 'Main State', 'thrive-ult' ) ?> ]</option>
<# if ( design.get( 'children' ) ) { #>
<# design.get( 'children' ).each( function ( state ) { #>
<option value="<#=state.get( 'ID' )#>"
<#=design.get( 'event_state' ) === state.get( 'ID' ) ? ' selected' : ''#>><#=state.get( 'post_title' ) #></option>
<# } ); #>
<# } #>
</select>
</div>
</div>
</div>

View File

@@ -0,0 +1,14 @@
<div class="tvu-timeline-col tvu-timeline-col-first">
<a href="javascript:void(0)" id="tvu-add-timeline-event"
class="tvu-add-timeline-event tvd-tooltipped" data-tooltip="<?php echo __( "Add new event to timeline", 'thrive-ult' ) ?>" data-position="right">
<span class="tvd-icon-plus"></span>
</a>
<div class="tvu-timeline-date">
<#= item.getLabel() #>
</div>
</div>
<div class="tvu-timeline-col tvu-timeline-col-second">
<p class="tvu-timeline-end tvd-no-margin">
<?php echo __( "Campaign end", 'thrive-ult' ) ?>
</p>
</div>

View File

@@ -0,0 +1,21 @@
<div class="tvu-timeline-col tvu-timeline-col-first">
<div class="tvu-timeline-date">
<#= item.getLabel() #>
</div>
</div>
<div class="tvu-timeline-col tvu-timeline-col-second">
<div class="tvu-timeline-box">
<#= item.get('name') #>
<div class="tvu-timeline-action-btns" style="<#= item.get('is_end') ? 'display:none;': '' #>">
<a class="tvu-bluegray-text tvu-btn-icon-small tvu-event-edit" href="javascript:void(0)">
<i class="tvd-icon-pencil"></i>
</a>
<a class="tvu-bluegray-text tvu-btn-icon-small tvu-event-delete" href="javascript:void(0)"
style="<#= item.get('type') ==='start' ? 'display:none;' : '' #>">
<i class="tvd-icon-trash-o tvd-left"></i>
</a>
</div>
<div class="tvu-event-actions"></div>
</div>
</div>

View File

@@ -0,0 +1,45 @@
<nav id="tvu-nav">
<div class="nav-wrapper">
<div class="tvu-logo tvd-left">
<a href="<?php echo admin_url( 'admin.php?page=tve_ult_dashboard' ) ?>"
title="<?php echo __( 'Thrive Ultimatum Home', 'thrive-ult' ) ?>">
<img src="<?php echo TVE_Ult_Const::plugin_url() . '/admin/img/tvu-logo-white.png'; ?>"/>
</a>
</div>
<ul class="tvd-right">
<li>
<a href="javascript:void(0)" class="tvd-dropdown-button" data-activates="tvu-submenu" data-beloworigin="true" data-hover="false" data-constrainwidth="false">
<i class="tvd-icon-settings" style="font-size: 12px;"></i>
<?php echo __( 'Settings', 'thrive-ult' ) ?>
<i class="tvd-icon-expanded tvd-no-margin-right"></i>
</a>
</li>
<?php do_action( 'tvd_notification_inbox' ); ?>
</ul>
<ul id="tvu-submenu" class="tvd-dropdown-content">
<li>
<a id="date_time_settings" href="#">
<i class="tvu-icon-datetime" style="font-size: 18px;"></i>
<?php echo __( 'Date & Time Settings', 'thrive-ult' ) ?>
</a>
</li>
<li>
<a id="tu-purge-cache" href="#purge-cache" class="tvd-tooltipped"
data-tooltip="<?php echo __( 'Clear the cache for impressions and conversions displayed for each campaign in Ultimatum Dashboard', 'thrive-ult' ) ?>">
<i class="tvd-icon-loop2" style="font-size: 12px;"></i>
<?php echo __( 'Purge Cache', 'thrive-ult' ) ?>
</a>
</li>
</ul>
</div>
</nav>
<div class="td-app-notification-overlay overlay close"></div>
<div class="td-app-notification-drawer">
<div class="td-app-notification-holder">
<div class="td-app-notification-header notification-header-notify-tve-ult"></div>
<div class="td-app-notification-wrapper notification-wrapper-notify-tve-ult"></div>
<div class="notification-footer notification-footer-notify-tve-ult"></div>
</div>
</div>
<?php include TVE_DASH_PATH . '/templates/share.phtml'; ?>

View File

@@ -0,0 +1,23 @@
<div class="tvd-modal-content">
<h3 class="tvd-modal-title"><?php echo __( "Copy campaign - ", 'thrive-ult' ) ?>
<#= model.get('post_title') #>
</h3>
<div class="tvd-v-spacer"></div>
<div class="tvu-new-campaign-templates control-grid"></div>
<div id="tvu-campaign-type-options"></div>
</div>
<div class="tvd-modal-footer control-grid">
<div>
<a href="javascript:void(0)"
class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-dark tvd-waves-effect tvd-modal-close">
<?php echo __( "Cancel", 'thrive-ult' ) ?>
</a>
</div>
<div>
<a href="javascript:void(0)"
class="tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-green tvd-right tvd-modal-submit">
<?php echo __( "Copy", 'thrive-ult' ) ?>
</a>
</div>
</div>

View File

@@ -0,0 +1,38 @@
<div class="tvd-modal-content">
<h3 class="tvd-modal-title">
<?php echo __( 'Campaign settings', 'thrive-ult' ) ?>
<?php tve_ult_video( '990MWdzuLh0' ) ?>
</h3>
<p><?php echo __( "Events on timeline may be affected by the campaign's duration.", 'thrive-ult' ) ?></p>
<div class="control-grid">
<?php foreach ( TVE_Ult_Const::campaign_types_details() as $type => $prop_type ) : ?>
<div class="tvu-campaign-selector" data-type="<?php echo $type; ?>">
<div class="tvu-xsmall-card tvd-tooltipped tvd-card tvd-white tvd-pointer tvd-center-align <#= (model.get('type') === '<?php echo $type; ?>')? 'tvu-selected-design':'' #>"
data-position="top" data-tooltip="<?php echo $prop_type['tooltip'] ?>">
<div class="tvd-card-content">
<img width="80"
src="<?php echo TVE_Ult_Const::plugin_url( 'admin/img/' . $prop_type['image'] ); ?>"/>
<p><strong><?php echo $prop_type['name'] ?></strong></p>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<div id="tvu-campaign-type-options"></div>
</div>
<div class="tvd-modal-footer control-grid">
<div>
<a href="javascript:void(0)"
class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-dark tvd-waves-effect tvd-modal-close">
<?php echo __( 'Cancel', 'thrive-ult' ) ?>
</a>
</div>
<div>
<a href="javascript:void(0)"
class="tvd-btn tvd-btn-green tvd-waves-light tvd-right tvu-save-campaign-type tvd-modal-submit">
<?php echo __( 'Save', 'thrive-ult' ) ?>
</a>
</div>
</div>

View File

@@ -0,0 +1,124 @@
<?php
$tzstring = get_option( TVE_Ult_Const::SETTINGS_TIME_ZONE );
?>
<div class="tvd-modal-content">
<h3 class="tvd-modal-title"><?php echo __( 'Set General Date & Time', 'thrive-ult' ) ?></h3>
<div class="tvd-v-spacer"></div>
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-m6 tvd-s12">
<h4><?php echo __( 'Date Format', 'thrive-ult' ) ?></h4>
<p><?php echo __( 'Current date format:', 'thrive-ult' ) ?>
<span class="tvu-gray-text">
<#= ThriveUlt.globals.date_formats.get(model.get('date_format')).date #><span>(<#= ThriveUlt.globals.date_formats.get(model.get('date_format')).description #>
)</span>
</span>
</p>
<div class="tvu-gray-box">
<div class="tvd-row tvd-collapse tvd-no-mb">
<div class="tvd-col tvd-l6 tvd-m7 tvd-s12">
<p class="tvd-no-margin tvd-vertical-align">
<?php echo __( 'Change default date format:', 'thrive-ult' ) ?>
</p>
</div>
<div class="tvd-col tvd-l6 tvd-m5 tvd-s12">
<div class="tvd-input-field tvd-no-margin">
<select id="tvu-date-format-setting">
<option disabled selected value="0"><?php echo __( 'Select Date Format', 'thrive-ult' ) ?></option>
<?php foreach ( TVE_Ult_Const::date_format_details( 'all' ) as $k => $v ) : ?>
<option
<#= model.get('date_format') == '<?php echo $k ?>' ? 'selected' : '' #> value="<?php echo $k; ?>"><?php echo $v['description']; ?></option>
<?php endforeach; ?>
</select>
<label for="tvu-date-format-setting">
<?php echo __( 'Set default format date', 'thrive-ult' ) ?>
</label>
</div>
</div>
</div>
</div>
</div>
<div class="tvd-col tvd-m6 tvd-s12">
<h4><?php echo __( 'Time Format', 'thrive-ult' ) ?></h4>
<?php
$timezone = TVE_Ult_Const::get_timezone( $tzstring );
$full_time = gmdate( 'H:i', time() + 3600 * ( $timezone + date( "I" ) ) );
$part_time = gmdate( 'h:i A', time() + 3600 * ( $timezone + date( "I" ) ) );
?>
<p><?php echo __( 'Current time format:', 'thrive-ult' ) ?>
<span class="tvu-gray-text">
<#= model.get('time_format') == 12 ? '<?php echo $part_time ?>' : '<?php echo $full_time ?>'#>
<span>(<#= model.get('time_format') #> <?php echo __( 'hours', 'thrive-ult' ) ?>)</span>
</span>
</p>
<div class="tvu-gray-box">
<div class="tvd-row tvd-collapse tvd-no-mb">
<div class="tvd-col tvd-l6 tvd-m7 tvd-s12">
<p class="tvd-no-margin tvd-vertical-align">
<?php echo __( 'Change default time format:', 'thrive-ult' ) ?>
</p>
</div>
<div class="tvd-col tvd-l6 tvd-m5 tvd-s12">
<div class="tvd-input-field tvd-no-margin">
<select id="tvu-time-format-setting">
<option disabled selected value="0"><?php echo __( 'Select Time Format', 'thrive-ult' ) ?></option>
<option
<#= model.get('time_format') == 24 ? 'selected' : '' #>
value="24"><?php echo __( '24 hours', 'thrive-ult' ) ?> (<?php echo $full_time; ?>)</option>
<option
<#= model.get('time_format') == 12 ? 'selected' : '' #>
value="12"><?php echo __( '12 hours', 'thrive-ult' ) ?> (<?php echo $part_time; ?>)</option>
</select>
<label for="tvu-time-format-setting">
<?php echo __( 'Set default time format', 'thrive-ult' ) ?>
</label>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tvd-v-spacer vs-2"></div>
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-m6 tvd-s12">
<h4><?php echo __( 'Time Zone Format', 'thrive-ult' ) ?></h4>
<p>
<?php echo __( 'Current time zone:', 'thrive-ult' ) ?>
<span class="tvu-gray-text">
<#= model.get('timezone') ? model.get('timezone') : '<?php __( 'Not Set', 'thrive-ult' ) ?>' #>
</span>
</p>
<div class="tvu-gray-box">
<div class="tvd-row tvd-collapse tvd-no-mb">
<div class="tvd-col tvd-l6 tvd-m7 tvd-s12">
<p class="tvd-no-margin tvd-vertical-align">
<?php echo __( 'Change default timezone:', 'thrive-ult' ) ?>
</p>
</div>
<div class="tvd-col tvd-l6 tvd-m5 tvd-s12">
<div class="tvd-input-field tvd-no-margin">
<select id="tvu-timezone-setting">
<?php echo wp_timezone_choice( $tzstring ); ?>
</select>
<label
for="tvu-timezone-setting"><?php echo __( 'Set default time zone', 'thrive-ult' ) ?></label>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tvd-modal-footer control-grid">
<div>
<a href="javascript:void(0)"
class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-dark tvd-waves-effect tvd-modal-close">
<?php echo __( "Cancel", 'thrive-ult' ) ?>
</a>
</div>
<div>
<a href="javascript:void(0)"
class="tvd-btn tvd-btn-green tvd-waves-light tvd-right tvu-save-date-settings tvd-modal-submit">
<?php echo __( "Save Changes", 'thrive-ult' ) ?>
</a>
</div>
</div>

View File

@@ -0,0 +1,65 @@
<div class="tvd-modal-content">
<h3 class="tvd-modal-title"><?php echo __( 'Timeline Event Settings', 'thrive-ult' ) ?></h3>
<div id="tvu-trigger-options" style="display: none">
<div class="tvd-v-spacer vs-2"></div>
<h4><?php echo __( 'Trigger', 'thrive-ult' ) ?></h4>
<div class="tvd-v-spacer"></div>
<?php echo __( 'This event starts', 'thrive-ult' ) ?>
<div class="tvd-input-field tvd-inline-block tvd-input-field-medium tvu-timeline-align-inputs">
<input id="tvu-event-time" type="text" maxlength="3" data-field="time"/>
<label for="tvu-event-start"
data-error="<?php echo __( 'Required field', 'thrive-ult' ) ?>">&nbsp;</label>
</div>
<div class="tvd-input-field tvd-inline-block tvd-input-field-medium tvu-timeline-align-inputs tvd-no-margin">
<select id="tvu-event-unit">
<option value="days"><?php echo __( 'Days', 'thrive-ult' ) ?></option>
<option value="hours"><?php echo __( 'Hours', 'thrive-ult' ) ?></option>
</select>
</div>
<?php echo __( 'before the countdown reaches zero.', 'thrive-ult' ) ?>
</div>
<div class="tvd-v-spacer vs-2"></div>
<div class="tvd-row tvd-collapse">
<div class="tvd-col tvd-s12">
<h4 class="tvd-no-margin"><?php echo __( 'Actions', 'thrive-ult' ) ?></h4>
<em class="tvd-small-text"><?php echo __( 'Choose the designs and states to be displayed once the countdown reaches this event', 'thrive-ult' ) ?></em>
</div>
</div>
<div class="tvu-event-designs">
<ul class="tvd-collection tvd-with-header" id="tvu-event-designs">
<li class="tvd-collection-header">
<div class="tvd-row tvd-collapse tvd-no-mb">
<div class="tvd-col tvd-s4">
<h5>
<?php echo __( 'Design to show', 'thrive-ult' ) ?>
</h5>
</div>
<div class="tvd-col tvd-s2 tvd-center-align">
<h5>
<?php echo __( 'Display', 'thrive-ult' ) ?>
</h5>
</div>
<div class="tvd-col tvd-s6">
<h5>
<?php echo __( 'Design State', 'thrive-ult' ) ?>
</h5>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="tvd-modal-footer control-grid">
<div>
<button
class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-dark tvd-modal-close tvd-waves-effect">
<?php echo __( 'Cancel', 'thrive-ult' ) ?>
</button>
</div>
<div>
<button
class="tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-green tvu-event-save tvd-right">
<?php echo __( 'Save Timeline Event', 'thrive-ult' ) ?>
</button>
</div>
</div>

View File

@@ -0,0 +1,111 @@
<div class="tvd-modal-content">
<h3 class="tvd-modal-title">
<?php echo __( 'Activate Lockdown Campaign', 'thrive-ult' ) ?>
<?php tve_ult_video( 'qSoYNGje8bg' ) ?>
</h3>
<div class="control-grid">
<div>
<p>
<img width="90" class="tvu-selected-design" src="<#= ThriveUlt.plugin_url +'admin/img/tvd-'+ model.get('type') + '-campaign.png' #>"/>
</p>
</div>
<div class="pl-30">
<p class="tvu-small-gray-text mb-10">
<# if(model.get('type') == ThriveUlt.util.campaignType.evergreen) { #>
<?php echo __( "Lockdown campaigns can't be cheated because promotions are tied to an email address. Unknown visitors aren't able to access the promotion. They are especially useful when you set up a sales page, but you don't want anyone to be able to access it before your campaign starts or you want to set up an offer that's available to subscribers exclusively.", 'thrive-ult' ) ?></p>
<# } else { #>
<?php echo __( "A lockdown campaign will only allow visitors to access the promotion page on the days when the campaign is active. Before the campaign starts they will be redirected to a pre-access page and once it's over, if they try to visit the promotion page, they will be redirected to an expired page.", 'thrive-ult' ) ?></p>
<# } #>
<a style="font-size: 12px;" href="https://thrivethemes.com/tkb_item/thrive-ultimatum-open-campaign-vs-lockdown-campaign/"><?php echo __( 'Learn more about the difference between open and locked campaigns', 'thrive-ult' ) ?></a>
</div>
</div>
<div id="tve-message-container">
<div class="notice notice-info mr-0">
<span class="notice-icon">!</span>
<p class="tvd-small-text"><?php echo __( 'Lockdown promotion pages need to be excluded from your caching plugin in order to work correctly.', 'thrive-ult' ) ?></p>
<a target="_blank" href="https://thrivethemes.com/tkb_item/how-to-exclude-a-lockdown-promotion-from-your-caching-plugin/"><?php echo __( 'Learn how to do this', 'thrive-ult' ) ?></a>
</div>
</div>
<div class="tvu-gray-borderless-box p-10 tvu-autocomplete-limit">
<div class="control-grid stretch">
<div class="tvu-white-borderless-box mr-10">
<p class="tvu-bold-text-important mb-0"><?php echo __( 'Pre-access page', 'thrive-ult' ) ?></p>
<p class="tvu-tiny-gray-text mt-5"><?php echo __( 'This is what visitors see if the campaign has not yet started for them', 'thrive-ult' ) ?></p>
<div class="tvd-input-field">
<input id="tvu-lockdown-pre-access-url" class="tvd-no-focus" type="text" value="<#= model.get('lockdown_settings').preaccess.value #>" data-field="preaccess"
data-allow-regex="^http(s)?:\/\/">
<label for="tvu-lockdown-pre-access-url"><?php echo __( 'Enter URL or search term', 'thrive-ult' ) ?></label>
</div>
</div>
<div class="tvu-white-borderless-box">
<p class="tvu-bold-text-important mb-0"><?php echo __( 'Expired page', 'thrive-ult' ) ?></p>
<p class="tvu-tiny-gray-text mt-5"><?php echo __( 'This is the page that the visitors see once their countdown expires', 'thrive-ult' ) ?></p>
<div class="tvd-input-field">
<input id="tvu-lockdown-expired-url" class="tvd-no-focus" type="text" value="<#= model.get('lockdown_settings').expired.value #>" data-field="expired"
data-allow-regex="^http(s)?:\/\/">
<label for="tvu-lockdown-expired-url"><?php echo __( 'Enter URL or search term', 'thrive-ult' ) ?></label>
</div>
</div>
</div>
<div class="tvu-white-borderless-box pt-15">
<p class="tvu-bold-text-important m-0"><?php echo __( 'Promotion pages', 'thrive-ult' ) ?></p>
<p class="tvu-tiny-gray-text mt-5"><?php echo __( 'These are the pages that are only available during the campaign', 'thrive-ult' ) ?></p>
<# if(model.get('type') == ThriveUlt.util.campaignType.evergreen) { #>
<div class="tvd-row tvd-no-mb">
<div class="tvd-row tvd-collapse tvd-no-mb">
<div class="tvd-col tvd-s12" style="width: 30%">
<div class="tvd-input-field">
<select id="tvu-autoresponder-type">
<option disabled selected value="0"><?php echo __( 'Select Email Service', 'thrive-ult' ) ?></option>
<?php
$connected_apis = Thrive_List_Manager::get_available_apis(
false,
[
'include_types' => [ 'autoresponder', 'integrations' ],
'include_3rd_party_apis' => true,
]
);
?>
<?php foreach ( $connected_apis as $key => $api ) : ?>
<?php $connection = \Thrive_Dash_List_Manager::connection_instance( $key ); ?>
<option data-tag="<?php echo $connection->get_email_merge_tag(); ?>"
value="<?php echo $key ?>"><?php echo $connection->get_title() ?></option>
<?php endforeach; ?>
</select>
<label for="tvu-autoresponder-type tvu-tiny-blue-text"><?php echo __( 'Select Email Service', 'thrive-ult' ) ?></label>
</div>
</div>
</div>
</div>
<# } #>
<div>
<p class="tvu-tiny-blue-text mb-10"><?php echo __( 'URL or search item', 'thrive-ult' ) ?></p>
</div>
<div class="control-grid">
<div class="tve-ult-promotion-wrapper"></div>
<!-- Lockdown box-->
<div class="tvu-url-to-copy-wrapper"></div>
</div>
<div class="pb-10">
<a href="javascript:void(0)" class="tve_ult_add_promotion_field"><span>+</span><?php echo __( 'Add new promotion page', 'thrive-ult' ) ?></a>
</div>
</div>
</div>
</div>
<!--Unchanged-->
<div class="tvd-modal-footer control-grid">
<div>
<a href="javascript:void(0)"
class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-dark tvd-waves-effect tvd-modal-close">
<?php echo __( 'Cancel', 'thrive-ult' ) ?>
</a>
</div>
<div>
<a href="javascript:void(0)"
class="tvd-btn tvd-btn-green tvd-waves-light tvd-right tvu-save-lockdown-settings tvd-modal-submit">
<?php echo __( 'Save', 'thrive-ult' ) ?>
</a>
</div>
</div>

View File

@@ -0,0 +1,26 @@
<div class="tvd-modal-content">
<h3 class="tvd-modal-title"><?php echo __( 'Countdown Design Shortcode', 'thrive-ult' ) ?></h3>
<p><?php echo __( 'Below you have the shortcode for the design created. Copy the code and insert it into any page or post.', 'thrive-ult' ) ?></p>
<div class="tvd-copy-row tvd-row tvd-collapse tvd-no-mb">
<div class="tvd-col tvd-s12 tvd-m9">
<div class="tvd-input-field">
<input id="tu-design-shortcode" readonly="readonly" class="tvd-no-focus tvu-email-link" type="text" value="<#= model.getShortcode() #>">
</div>
</div>
<div class="tvd-col tvd-s12 tvd-m3">
<a class="tve-copy-to-clipboard tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-blue" href="javascript:void(0)">
<span class="tvd-copy-text"><?php echo __( 'Copy', 'thrive-ult' ) ?></span>
</a>
</div>
</div>
</div>
<div class="tvd-modal-footer control-grid">
<div>
<a href="javascript:void(0)"
class="tvd-btn tvd-btn-green tvd-waves-light tvd-right tvd-modal-close">
<?php echo __( 'Done', 'thrive-ult' ) ?>
</a>
</div>
</div>

View File

@@ -0,0 +1,9 @@
<div>
<div class="tvd-center-align tvd-card tvd-white tvd-pointer" tabindex="<#=index#>">
<img src="<#= item.get('image') #>" alt="" class="tvu-new-campaign-tpl"
data-id="<#= item.get('id') #>">
</div>
<p class="tvd-center-align">
<#= item.get('name') #>
</p>
</div>

View File

@@ -0,0 +1,48 @@
<div class="tvu-modal-step">
<div class="tvd-modal-content">
<h3 class="tvd-modal-title"><?php echo __( 'Create campaign from scratch or customize a template', 'thrive-ult' ) ?></h3>
<p><?php echo __( 'Choose a template', 'thrive-ult' ) ?></p>
<div class="tvu-new-campaign-templates control-grid"></div>
<div class="tvu-new-campaign-description"></div>
</div>
<div class="tvd-modal-footer control-grid">
<div>
<a href="javascript:void(0)"
class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-dark tvd-waves-effect tvd-modal-close">
<?php echo __( 'Cancel', 'thrive-ult' ) ?>
</a>
</div>
<div>
<a href="javascript:void(0)"
class="tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-green tvd-right tvu-modal-next-step">
<?php echo __( 'Continue', 'thrive-ult' ) ?>
</a>
</div>
</div>
</div>
<div class="tvu-modal-step">
<div class="tvd-modal-content">
<h3 class="tvd-modal-title"><?php echo __( 'Name your campaign', 'thrive-ult' ) ?></h3>
<p><?php echo __( 'Enter a name for your campaign. This is for internal use only - your website visitors will not see this name.', 'thrive-ult' ) ?></p>
<div class="tvd-input-field">
<input id="tvu-new-campaign-name" type="text" name="new-campaign-name" data-bind="post_title">
<label for="tvu-new-campaign-name"
data-error="<?php echo __( 'Campaign name is required', 'thrive-ult' ) ?>"><?php echo __( 'Campaign name', 'thrive-ult' ) ?></label>
</div>
</div>
<div class="tvd-modal-footer control-grid">
<a href="javascript:void(0)"
class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-dark tvd-waves-effect tvu-modal-prev-step">
<?php echo __( 'Back', 'thrive-ult' ) ?>
</a>
<a href="javascript:void(0)"
class="tvd-waves-effect tvd-waves-light tvd-btn tvd-btn-green tvd-right tvd-modal-submit">
<?php echo __( 'Continue', 'thrive-ult' ) ?>
</a>
</div>
</div>

View File

@@ -0,0 +1,135 @@
<div class="tvu-modal-step">
<div class="tvd-modal-content">
<h3 class="tvd-modal-title"><?php echo __( "Conversion Events Settings", 'thrive-ult' ) ?></h3>
<p><?php echo __( "Step 1: Set your Trigger", 'thrive-ult' ) ?></p>
<div id="tvu-conversion-options" class="tvd-row tvd-collapse">
<div class="tvd-col tvd-m6">
<div class="tvd-input-field tvu-no-margin-select">
<select name="" id="tvu-select-campaign-trigger" class="tvu-campaign-trigger" data-field="trigger">
<option disabled selected value="0"><?php echo __( 'Choose Trigger', 'thrive-ult' ) ?></option>
<?php foreach ( TU_Campaign_Event::get_triggers() as $key => $details ) : ?>
<option data-icon="<?php echo $key ?>" <#= model.get('trigger_options').trigger && model.get('trigger_options').trigger === '<?php echo $key ?>' ? 'selected' : '' #> value="<?php echo $key ?>" class="tvu-<?php echo $key ?>"><?php echo $details['title'] ?></option>
<?php endforeach; ?>
</select>
<label for="tvu-select-campaign-trigger"><?php echo __( 'Trigger', 'thrive-ult' ) ?></label>
</div>
</div>
</div>
<div class="tvd-v-spacer"></div>
<div id="tvu-conversion-triggers"></div>
</div>
<div class="tvd-modal-footer control-grid">
<a href="javascript:void(0)"
class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-dark tvd-waves-effect tvd-modal-close">
<?php echo __( "Cancel", 'thrive-ult' ) ?>
</a>
<a href="javascript:void(0)"
class="tvd-btn tvd-btn-green tvd-waves-light tvd-right tvu-continue-events">
<?php echo __( "Continue", 'thrive-ult' ) ?>
</a>
</div>
</div>
<div class="tvu-modal-step">
<div class="tvd-modal-content">
<h3 class="tvd-modal-title"><?php echo __( 'Conversion Events Settings', 'thrive-ult' ) ?></h3>
<div class="tvd-v-spacer vs-2"></div>
<div id="tvu-trigger-description" class="tvu-trigger-description tvd-row tvd-collapse"></div>
<div class="tvd-v-spacer"></div>
<p class="tvd-no-margin"><?php echo __( "Step 2: Set the action for the trigger, to be performed", 'thrive-ult' ) ?></p>
<div class="tvd-v-spacer"></div>
<div id="tvu-conversion-options" class="tvd-row tvd-collapse">
<div class="tvd-col tvd-m6">
<div class="tvd-input-field tvu-no-margin-select">
<select name="" id="tvu-select-campaign-event" class="tvu-campaign-event" data-field="action_event">
<option disabled selected value="0"><?php echo __( 'Choose action', 'thrive-ult' ) ?></option>
<?php foreach ( TU_Campaign_Event::get_types() as $key => $details ) : ?>
<option <#= model.get('trigger_options').event && model.get('trigger_options').event === '<?php echo $key ?>' ? 'selected' : '' #> value="<?php echo $key ?>" class="tvu-<?php echo $key ?>"><?php echo $details['title'] ?></option>
<?php endforeach; ?>
</select>
<label for="tvu-select-campaign-event"><?php echo __( 'Choose action', 'thrive-ult' ) ?></label>
</div>
</div>
</div>
<div id="tvu-conversion-events"></div>
</div>
<div class="tvd-modal-footer control-grid">
<div>
<a href="javascript:void(0)"
class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-dark tvd-waves-effect tvu-modal-prev-step">
<?php echo __( "Back", 'thrive-ult' ) ?>
</a>
</div>
<div>
<a href="javascript:void(0)"
class="tvd-btn tvd-btn-green tvd-waves-light tvd-right tvu-save-new-conversion-event tvd-modal-submit">
<?php echo __( "Save", 'thrive-ult' ) ?>
</a>
</div>
</div>
</div>
<div class="tvu-modal-step">
<div class="tvd-modal-content">
<h3 class="tvd-modal-title"><?php echo __( 'Add new Evergreen Campaign', 'thrive-ult' ) ?></h3>
<p><?php echo __( 'Please fill in the fields for the new campaign', 'thrive-ult' ) ?></p>
<div class="tvd-input-field">
<input id="tvu-new-campaign-name" type="text" name="new-campaign-name" data-field="post_title" data-bind="post_title">
<label for="tvu-new-campaign-name"><?php echo __( "Campaign name", 'thrive-ult' ) ?></label>
</div>
<p><?php echo __( 'Tell us how long you would like the evergreen campaign to last for, for each user', 'thrive-ult' ); ?></p>
<div class="control-grid">
<div class="tvd-col tvd-m11">
<div class="tvd-input-field">
<input id="tvu-new-campaign-days" type="text" value="" data-field="duration">
<label for="tvu-new-campaign-days"><?php echo __( "Duration", 'thrive-ult' ) ?></label>
</div>
</div>
<div class="tvd-col tvd-m1">
<p>days</p>
</div>
</div>
<div class="control-grid">
<div class="w-40">
<p class="tvd-no-margin"><?php echo __( 'Repeat this campaign?', 'thrive-ult' ) ?></p>
</div>
<div class="w-30">
<div class="tvd-switch">
<label>
<?php echo __( 'NO', 'thrive-ult' ) ?>
<input class="tvu-new-campaign-repeat-switch" type="checkbox">
<span id="tvu-new-campaign-repeat-campaign-switch" class="tvd-lever"></span>
<?php echo __( 'YES', 'thrive-ult' ) ?>
</label>
</div>
</div>
</div>
<div class="tvu-gray-box tvu-repeat-wrapper tvd-margin-bottom" style="display:none;">
<p class="tvd-inline-block tvd-vertical-align tvd-no-margin">
<?php echo __( "Show this campaign again after", 'thrive-ult' ) ?>
</p>
<div class="tvd-input-field tvd-inline-block tvd-input-field-small">
<input id="tvu-new-campaign-expire" class="tvd-no-margin" maxlength="5" type="text" value="" data-field="end">
</div>
<p class="tvd-inline-block tvd-vertical-align tvd-no-margin">
<?php echo __( 'days.', 'thrive-ult' ) ?>
</p>
</div>
</div>
<div class="tvd-modal-footer control-grid">
<div>
<a href="javascript:void(0)"
class="tvd-btn-flat tvd-btn-flat-secondary tvd-btn-flat-dark tvd-waves-effect tvu-modal-prev-step">
<?php echo __( "Back", 'thrive-ult' ) ?>
</a>
</div>
<div>
<a href="javascript:void(0)"
class="tvd-btn tvd-btn-green tvd-waves-light tvd-right tvu-save-new-evergreen-campaign tvd-modal-submit">
<?php echo __( "Add Campaign", 'thrive-ult' ) ?>
</a>
</div>
</div>
</div>

Some files were not shown because too many files have changed in this diff Show More