Version Description
- 2018-05-07
Download this release
Release Info
| Developer | codeinwp |
| Plugin | |
| Version | 2.4.1 |
| Comparing to | |
| See all releases | |
Code changes from version 2.4.0 to 2.4.1
- CHANGELOG.md +4 -0
- admin/class-pirateforms-admin.php +97 -5
- admin/js/scripts-admin.js +13 -0
- includes/class-pirateforms-html.php +6 -1
- includes/class-pirateforms.php +3 -1
- pirate-forms.php +2 -2
- public/class-pirateforms-public.php +37 -1
- public/css/front.css +1 -1
- readme.md +12 -0
- readme.txt +12 -0
- themeisle-hash.json +1 -1
- vendor/autoload.php +1 -1
- vendor/autoload_52.php +1 -1
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-deactivate.php +6 -6
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-logger.php +10 -10
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-product.php +84 -11
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-widget-dashboard-blog.php +106 -92
- vendor/codeinwp/themeisle-sdk/load.php +1 -1
- vendor/composer/autoload_real.php +5 -5
- vendor/composer/autoload_real_52.php +3 -3
- vendor/composer/installed.json +4 -4
CHANGELOG.md
CHANGED
|
@@ -1,4 +1,8 @@
|
|
| 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
### v2.4.0 - 2018-04-02
|
| 3 |
**Changes:**
|
| 4 |
* Improves compatibility with various themes.
|
| 1 |
|
| 2 |
+
### v2.4.1 - 2018-05-07
|
| 3 |
+
**Changes:**
|
| 4 |
+
* GDPR compliance
|
| 5 |
+
|
| 6 |
### v2.4.0 - 2018-04-02
|
| 7 |
**Changes:**
|
| 8 |
* Improves compatibility with various themes.
|
admin/class-pirateforms-admin.php
CHANGED
|
@@ -63,15 +63,16 @@ class PirateForms_Admin {
|
|
| 63 |
public function enqueue_styles_and_scripts() {
|
| 64 |
global $pagenow;
|
| 65 |
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
) {
|
| 69 |
wp_enqueue_style( 'pirateforms_admin_styles', PIRATEFORMS_URL . 'admin/css/wp-admin.css', array(), $this->version );
|
| 70 |
wp_enqueue_script( 'pirateforms_scripts_admin', PIRATEFORMS_URL . 'admin/js/scripts-admin.js', array( 'jquery', 'jquery-ui-tooltip' ), $this->version );
|
| 71 |
wp_localize_script(
|
| 72 |
'pirateforms_scripts_admin', 'cwp_top_ajaxload', array(
|
| 73 |
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
| 74 |
'nonce' => wp_create_nonce( PIRATEFORMS_SLUG ),
|
|
|
|
| 75 |
'i10n' => array(
|
| 76 |
'recaptcha' => __( 'Please specify the Site Key and Secret Key.', 'pirate-forms' ),
|
| 77 |
),
|
|
@@ -303,17 +304,18 @@ class PirateForms_Admin {
|
|
| 303 |
'value' => __( 'Store submissions in the database', 'pirate-forms' ),
|
| 304 |
'html' => '<span class="dashicons dashicons-editor-help"></span>',
|
| 305 |
'desc' => array(
|
| 306 |
-
'value' => __( 'Should the submissions be stored in the admin area? If chosen, contact form submissions will be saved under "All Entries" on the left (appears after this option is activated).', 'pirate-forms' ),
|
| 307 |
'class' => 'pirate_forms_option_description',
|
| 308 |
),
|
| 309 |
),
|
| 310 |
-
'default' => '
|
| 311 |
'value' => PirateForms_Util::get_option( 'pirateformsopt_store' ),
|
| 312 |
'wrap' => array(
|
| 313 |
'type' => 'div',
|
| 314 |
'class' => 'pirate-forms-grouped',
|
| 315 |
),
|
| 316 |
'options' => array( 'yes' => __( 'Yes', 'pirate-forms' ) ),
|
|
|
|
| 317 |
),
|
| 318 |
array(
|
| 319 |
'id' => 'pirateformsopt_nonce',
|
|
@@ -512,6 +514,23 @@ class PirateForms_Admin {
|
|
| 512 |
'req' => __( 'Required', 'pirate-forms' ),
|
| 513 |
),
|
| 514 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 515 |
/* Recaptcha */
|
| 516 |
array(
|
| 517 |
'id' => 'pirateformsopt_recaptcha_field',
|
|
@@ -634,6 +653,24 @@ class PirateForms_Admin {
|
|
| 634 |
'class' => 'pirate-forms-grouped',
|
| 635 |
),
|
| 636 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 637 |
array(
|
| 638 |
'id' => 'pirateformsopt_email_content',
|
| 639 |
'type' => 'wysiwyg',
|
|
@@ -724,6 +761,19 @@ class PirateForms_Admin {
|
|
| 724 |
'class' => 'pirate-forms-grouped',
|
| 725 |
),
|
| 726 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 727 |
array(
|
| 728 |
'id' => 'pirateformsopt_label_submit',
|
| 729 |
'type' => 'text',
|
|
@@ -1030,6 +1080,48 @@ class PirateForms_Admin {
|
|
| 1030 |
return $options;
|
| 1031 |
}
|
| 1032 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1033 |
/**
|
| 1034 |
* Hook into the sent result.
|
| 1035 |
*/
|
| 63 |
public function enqueue_styles_and_scripts() {
|
| 64 |
global $pagenow;
|
| 65 |
|
| 66 |
+
$allowed = array( 'options-general.php', 'admin.php', 'edit.php', 'post.php' );
|
| 67 |
+
|
| 68 |
+
if ( ( ! empty( $pagenow ) && in_array( $pagenow, $allowed ) ) || ( isset( $_GET['page'] ) && $_GET['page'] == 'pirateforms-admin' ) ) {
|
| 69 |
wp_enqueue_style( 'pirateforms_admin_styles', PIRATEFORMS_URL . 'admin/css/wp-admin.css', array(), $this->version );
|
| 70 |
wp_enqueue_script( 'pirateforms_scripts_admin', PIRATEFORMS_URL . 'admin/js/scripts-admin.js', array( 'jquery', 'jquery-ui-tooltip' ), $this->version );
|
| 71 |
wp_localize_script(
|
| 72 |
'pirateforms_scripts_admin', 'cwp_top_ajaxload', array(
|
| 73 |
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
| 74 |
'nonce' => wp_create_nonce( PIRATEFORMS_SLUG ),
|
| 75 |
+
'slug' => PIRATEFORMS_SLUG,
|
| 76 |
'i10n' => array(
|
| 77 |
'recaptcha' => __( 'Please specify the Site Key and Secret Key.', 'pirate-forms' ),
|
| 78 |
),
|
| 304 |
'value' => __( 'Store submissions in the database', 'pirate-forms' ),
|
| 305 |
'html' => '<span class="dashicons dashicons-editor-help"></span>',
|
| 306 |
'desc' => array(
|
| 307 |
+
'value' => sprintf( '%s<br>%s', __( 'Should the submissions be stored in the admin area? If chosen, contact form submissions will be saved under "All Entries" on the left (appears after this option is activated).', 'pirate-forms' ), __( 'According to GDPR we recommend you to ask for consent in order to store user data', 'pirate-forms' ) ),
|
| 308 |
'class' => 'pirate_forms_option_description',
|
| 309 |
),
|
| 310 |
),
|
| 311 |
+
'default' => 'no',
|
| 312 |
'value' => PirateForms_Util::get_option( 'pirateformsopt_store' ),
|
| 313 |
'wrap' => array(
|
| 314 |
'type' => 'div',
|
| 315 |
'class' => 'pirate-forms-grouped',
|
| 316 |
),
|
| 317 |
'options' => array( 'yes' => __( 'Yes', 'pirate-forms' ) ),
|
| 318 |
+
'title' => __( 'According to GDPR, we recommend you to ask for consent in order to store user data.', 'pirate-forms' ),
|
| 319 |
),
|
| 320 |
array(
|
| 321 |
'id' => 'pirateformsopt_nonce',
|
| 514 |
'req' => __( 'Required', 'pirate-forms' ),
|
| 515 |
),
|
| 516 |
),
|
| 517 |
+
array(
|
| 518 |
+
'id' => 'pirateformsopt_checkbox_field',
|
| 519 |
+
'type' => 'select',
|
| 520 |
+
'label' => array(
|
| 521 |
+
'value' => __( 'Checkbox', 'pirate-forms' ),
|
| 522 |
+
),
|
| 523 |
+
'value' => PirateForms_Util::get_option( 'pirateformsopt_checkbox_field' ),
|
| 524 |
+
'wrap' => array(
|
| 525 |
+
'type' => 'div',
|
| 526 |
+
'class' => 'pirate-forms-grouped pirateformsopt_checkbox',
|
| 527 |
+
),
|
| 528 |
+
'options' => array(
|
| 529 |
+
'' => __( 'Do not display', 'pirate-forms' ),
|
| 530 |
+
'yes' => __( 'Display but not required', 'pirate-forms' ),
|
| 531 |
+
'req' => __( 'Required', 'pirate-forms' ),
|
| 532 |
+
),
|
| 533 |
+
),
|
| 534 |
/* Recaptcha */
|
| 535 |
array(
|
| 536 |
'id' => 'pirateformsopt_recaptcha_field',
|
| 653 |
'class' => 'pirate-forms-grouped',
|
| 654 |
),
|
| 655 |
),
|
| 656 |
+
array(
|
| 657 |
+
'id' => 'pirateformsopt_label_checkbox',
|
| 658 |
+
'type' => 'wysiwyg',
|
| 659 |
+
'label' => array(
|
| 660 |
+
'value' => __( 'Checkbox', 'pirate-forms' ),
|
| 661 |
+
),
|
| 662 |
+
'value' => PirateForms_Util::get_option( 'pirateformsopt_label_checkbox' ),
|
| 663 |
+
'wrap' => array(
|
| 664 |
+
'type' => 'div',
|
| 665 |
+
'class' => 'pirate-forms-grouped',
|
| 666 |
+
),
|
| 667 |
+
'wysiwyg' => array(
|
| 668 |
+
'editor_class' => 'pirate-forms-wysiwyg',
|
| 669 |
+
'quicktags' => false,
|
| 670 |
+
'teeny' => true,
|
| 671 |
+
'media_buttons' => false,
|
| 672 |
+
),
|
| 673 |
+
),
|
| 674 |
array(
|
| 675 |
'id' => 'pirateformsopt_email_content',
|
| 676 |
'type' => 'wysiwyg',
|
| 761 |
'class' => 'pirate-forms-grouped',
|
| 762 |
),
|
| 763 |
),
|
| 764 |
+
array(
|
| 765 |
+
'id' => 'pirateformsopt_label_err_no_checkbox',
|
| 766 |
+
'type' => 'text',
|
| 767 |
+
'label' => array(
|
| 768 |
+
'value' => __( 'Checkbox is not checked', 'pirate-forms' ),
|
| 769 |
+
),
|
| 770 |
+
'default' => __( 'Please select the checkbox', 'pirate-forms' ),
|
| 771 |
+
'value' => PirateForms_Util::get_option( 'pirateformsopt_label_err_no_checkbox' ),
|
| 772 |
+
'wrap' => array(
|
| 773 |
+
'type' => 'div',
|
| 774 |
+
'class' => 'pirate-forms-grouped',
|
| 775 |
+
),
|
| 776 |
+
),
|
| 777 |
array(
|
| 778 |
'id' => 'pirateformsopt_label_submit',
|
| 779 |
'type' => 'text',
|
| 1080 |
return $options;
|
| 1081 |
}
|
| 1082 |
|
| 1083 |
+
/**
|
| 1084 |
+
* Show admin notices.
|
| 1085 |
+
*/
|
| 1086 |
+
public function admin_notices() {
|
| 1087 |
+
$screen = get_current_screen();
|
| 1088 |
+
if ( empty( $screen ) ) {
|
| 1089 |
+
return;
|
| 1090 |
+
}
|
| 1091 |
+
if ( ! isset( $screen->base ) ) {
|
| 1092 |
+
return;
|
| 1093 |
+
}
|
| 1094 |
+
|
| 1095 |
+
if ( ! in_array( $screen->id, array( 'toplevel_page_pirateforms-admin' ) ) ) {
|
| 1096 |
+
return;
|
| 1097 |
+
}
|
| 1098 |
+
|
| 1099 |
+
$options = PirateForms_Util::get_option();
|
| 1100 |
+
|
| 1101 |
+
// check if store submissions is enabled without having a checkbox.
|
| 1102 |
+
if ( 'yes' !== $options['pirateformsopt_store'] ) {
|
| 1103 |
+
return;
|
| 1104 |
+
}
|
| 1105 |
+
|
| 1106 |
+
if ( empty( $options['pirateformsopt_checkbox_field'] ) && false === ( $x = get_transient( 'pirate_forms_gdpr_notice0' ) ) ) {
|
| 1107 |
+
echo sprintf( '<div data-dismissible="0" class="notice notice-warning pirateforms-notice pirateforms-notice-checkbox pirateforms-notice-gdpr is-dismissible"><p><strong>%s</strong></p></div>', __( 'According to GDPR we recommend you to ask for consent in order to store user data', 'pirate-forms' ) );
|
| 1108 |
+
}
|
| 1109 |
+
}
|
| 1110 |
+
|
| 1111 |
+
/**
|
| 1112 |
+
* Generic ajax handler.
|
| 1113 |
+
*/
|
| 1114 |
+
public function ajax() {
|
| 1115 |
+
check_ajax_referer( PIRATEFORMS_SLUG, 'security' );
|
| 1116 |
+
|
| 1117 |
+
switch ( $_POST['_action'] ) {
|
| 1118 |
+
case 'dismiss-notice':
|
| 1119 |
+
set_transient( 'pirate_forms_gdpr_notice' . $_POST['id'], 'yes' );
|
| 1120 |
+
break;
|
| 1121 |
+
}
|
| 1122 |
+
wp_die();
|
| 1123 |
+
}
|
| 1124 |
+
|
| 1125 |
/**
|
| 1126 |
* Hook into the sent result.
|
| 1127 |
*/
|
admin/js/scripts-admin.js
CHANGED
|
@@ -148,4 +148,17 @@ function initAll(){
|
|
| 148 |
});
|
| 149 |
}
|
| 150 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 151 |
}
|
| 148 |
});
|
| 149 |
}
|
| 150 |
});
|
| 151 |
+
|
| 152 |
+
jQuery('.pirateforms-notice-gdpr.is-dismissible').on('click', '.notice-dismiss', function(){
|
| 153 |
+
jQuery.ajax({
|
| 154 |
+
url : cwp_top_ajaxload.ajaxurl,
|
| 155 |
+
type : 'POST',
|
| 156 |
+
data : {
|
| 157 |
+
id : jQuery(this).parent().attr('data-dismissible'),
|
| 158 |
+
_action : 'dismiss-notice',
|
| 159 |
+
security : cwp_top_ajaxload.nonce,
|
| 160 |
+
action : cwp_top_ajaxload.slug
|
| 161 |
+
}
|
| 162 |
+
});
|
| 163 |
+
});
|
| 164 |
}
|
includes/class-pirateforms-html.php
CHANGED
|
@@ -124,6 +124,10 @@ class PirateForms_HTML {
|
|
| 124 |
$html .= ' disabled';
|
| 125 |
}
|
| 126 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 127 |
return $html;
|
| 128 |
}
|
| 129 |
|
|
@@ -368,7 +372,8 @@ class PirateForms_HTML {
|
|
| 368 |
}
|
| 369 |
foreach ( $args['options'] as $key => $val ) {
|
| 370 |
$extra = isset( $args['value'] ) && $key == $args['value'] ? 'checked' : '';
|
| 371 |
-
|
|
|
|
| 372 |
}
|
| 373 |
}
|
| 374 |
return $this->get_wrap( $args, $html );
|
| 124 |
$html .= ' disabled';
|
| 125 |
}
|
| 126 |
|
| 127 |
+
if ( isset( $args['title'] ) && ! empty( $args['title'] ) ) {
|
| 128 |
+
$html .= ' title="' . esc_attr( $args['title'] ) . '"';
|
| 129 |
+
}
|
| 130 |
+
|
| 131 |
return $html;
|
| 132 |
}
|
| 133 |
|
| 372 |
}
|
| 373 |
foreach ( $args['options'] as $key => $val ) {
|
| 374 |
$extra = isset( $args['value'] ) && $key == $args['value'] ? 'checked' : '';
|
| 375 |
+
// DO NOT escape $val because it can also have HTML markup.
|
| 376 |
+
$html .= '<input type="checkbox" ' . $extra . ' ' . $this->get_common( $args ) . ' value="' . esc_attr( $key ) . '"><label for="' . esc_attr( $args['id'] ) . '" class="pf-checkbox-label"><span>' . $val . '</span></label>';
|
| 377 |
}
|
| 378 |
}
|
| 379 |
return $this->get_wrap( $args, $html );
|
includes/class-pirateforms.php
CHANGED
|
@@ -69,7 +69,7 @@ class PirateForms {
|
|
| 69 |
public function __construct() {
|
| 70 |
|
| 71 |
$this->plugin_name = 'pirateforms';
|
| 72 |
-
$this->version = '2.4.
|
| 73 |
|
| 74 |
$this->load_dependencies();
|
| 75 |
$this->set_locale();
|
|
@@ -149,9 +149,11 @@ class PirateForms {
|
|
| 149 |
$this->loader->add_filter( 'plugin_action_links_' . PIRATEFORMS_BASENAME, $plugin_admin, 'add_settings_link' );
|
| 150 |
$this->loader->add_action( 'wp_ajax_pirate_forms_save', $plugin_admin, 'save_callback' );
|
| 151 |
$this->loader->add_action( 'wp_ajax_pirate_forms_test', $plugin_admin, 'test_email' );
|
|
|
|
| 152 |
$this->loader->add_action( 'pirate_forms_load_sidebar', $plugin_admin, 'load_sidebar' );
|
| 153 |
$this->loader->add_action( 'pirate_forms_load_sidebar_theme', $plugin_admin, 'load_sidebar_theme' );
|
| 154 |
$this->loader->add_action( 'pirate_forms_load_sidebar_subscribe', $plugin_admin, 'load_sidebar_subscribe' );
|
|
|
|
| 155 |
|
| 156 |
// this informs the pro whether the lite will implement the custom spam checkbox or not.
|
| 157 |
add_filter( 'pirate_forms_support_custom_spam', '__return_true' );
|
| 69 |
public function __construct() {
|
| 70 |
|
| 71 |
$this->plugin_name = 'pirateforms';
|
| 72 |
+
$this->version = '2.4.1';
|
| 73 |
|
| 74 |
$this->load_dependencies();
|
| 75 |
$this->set_locale();
|
| 149 |
$this->loader->add_filter( 'plugin_action_links_' . PIRATEFORMS_BASENAME, $plugin_admin, 'add_settings_link' );
|
| 150 |
$this->loader->add_action( 'wp_ajax_pirate_forms_save', $plugin_admin, 'save_callback' );
|
| 151 |
$this->loader->add_action( 'wp_ajax_pirate_forms_test', $plugin_admin, 'test_email' );
|
| 152 |
+
$this->loader->add_action( 'wp_ajax_' . PIRATEFORMS_SLUG, $plugin_admin, 'ajax' );
|
| 153 |
$this->loader->add_action( 'pirate_forms_load_sidebar', $plugin_admin, 'load_sidebar' );
|
| 154 |
$this->loader->add_action( 'pirate_forms_load_sidebar_theme', $plugin_admin, 'load_sidebar_theme' );
|
| 155 |
$this->loader->add_action( 'pirate_forms_load_sidebar_subscribe', $plugin_admin, 'load_sidebar_subscribe' );
|
| 156 |
+
$this->loader->add_action( 'admin_notices', $plugin_admin, 'admin_notices' );
|
| 157 |
|
| 158 |
// this informs the pro whether the lite will implement the custom spam checkbox or not.
|
| 159 |
add_filter( 'pirate_forms_support_custom_spam', '__return_true' );
|
pirate-forms.php
CHANGED
|
@@ -16,7 +16,7 @@
|
|
| 16 |
* Plugin Name: Free & Simple Contact Form Plugin - Pirateforms
|
| 17 |
* Plugin URI: http://themeisle.com/plugins/pirate-forms/
|
| 18 |
* Description: Easily creates a nice looking, simple contact form on your WP site.
|
| 19 |
-
* Version: 2.4.
|
| 20 |
* Author: Themeisle
|
| 21 |
* Author URI: http://themeisle.com
|
| 22 |
* Text Domain: pirate-forms
|
|
@@ -36,7 +36,7 @@ if ( ! defined( 'WPINC' ) ) {
|
|
| 36 |
define( 'PIRATEFORMS_NAME', 'Pirate Forms' );
|
| 37 |
define( 'PIRATEFORMS_SLUG', 'pirate-forms' );
|
| 38 |
define( 'PIRATEFORMS_USELL_LINK', 'https://themeisle.com/plugins/pirate-forms-extended/' );
|
| 39 |
-
define( 'PIRATE_FORMS_VERSION', '2.4.
|
| 40 |
define( 'PIRATEFORMS_DIR', trailingslashit( plugin_dir_path( __FILE__ ) ) );
|
| 41 |
define( 'PIRATEFORMS_URL', plugin_dir_url( __FILE__ ) );
|
| 42 |
define( 'PIRATEFORMS_BASENAME', plugin_basename( __FILE__ ) );
|
| 16 |
* Plugin Name: Free & Simple Contact Form Plugin - Pirateforms
|
| 17 |
* Plugin URI: http://themeisle.com/plugins/pirate-forms/
|
| 18 |
* Description: Easily creates a nice looking, simple contact form on your WP site.
|
| 19 |
+
* Version: 2.4.1
|
| 20 |
* Author: Themeisle
|
| 21 |
* Author URI: http://themeisle.com
|
| 22 |
* Text Domain: pirate-forms
|
| 36 |
define( 'PIRATEFORMS_NAME', 'Pirate Forms' );
|
| 37 |
define( 'PIRATEFORMS_SLUG', 'pirate-forms' );
|
| 38 |
define( 'PIRATEFORMS_USELL_LINK', 'https://themeisle.com/plugins/pirate-forms-extended/' );
|
| 39 |
+
define( 'PIRATE_FORMS_VERSION', '2.4.1' );
|
| 40 |
define( 'PIRATEFORMS_DIR', trailingslashit( plugin_dir_path( __FILE__ ) ) );
|
| 41 |
define( 'PIRATEFORMS_URL', plugin_dir_url( __FILE__ ) );
|
| 42 |
define( 'PIRATEFORMS_BASENAME', plugin_basename( __FILE__ ) );
|
public/class-pirateforms-public.php
CHANGED
|
@@ -341,7 +341,7 @@ class PirateForms_Public {
|
|
| 341 |
$field = $pirate_forms_options['pirateformsopt_attachment_field'];
|
| 342 |
|
| 343 |
/**
|
| 344 |
-
******
|
| 345 |
if ( ! empty( $field ) && 'no' !== $field ) :
|
| 346 |
$required = $field === 'req' ? true : false;
|
| 347 |
$wrap_classes = array( 'col-xs-12 form_field_wrap contact_attachment_wrap' );
|
|
@@ -361,6 +361,38 @@ class PirateForms_Public {
|
|
| 361 |
),
|
| 362 |
);
|
| 363 |
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 364 |
/**
|
| 365 |
******* ReCaptcha */
|
| 366 |
if ( ! empty( $pirate_forms_options['pirateformsopt_recaptcha_secretkey'] ) && ! empty( $pirate_forms_options['pirateformsopt_recaptcha_sitekey'] ) && ! empty( $pirate_forms_options['pirateformsopt_recaptcha_field'] ) && ( 'yes' === $pirate_forms_options['pirateformsopt_recaptcha_field'] ) ) :
|
|
@@ -482,6 +514,10 @@ class PirateForms_Public {
|
|
| 482 |
echo $form_builder->attachment;
|
| 483 |
}
|
| 484 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 485 |
echo '<div class="pirate-forms-footer">';
|
| 486 |
|
| 487 |
if ( isset( $form_builder->captcha ) ) {
|
| 341 |
$field = $pirate_forms_options['pirateformsopt_attachment_field'];
|
| 342 |
|
| 343 |
/**
|
| 344 |
+
****** Attachment field */
|
| 345 |
if ( ! empty( $field ) && 'no' !== $field ) :
|
| 346 |
$required = $field === 'req' ? true : false;
|
| 347 |
$wrap_classes = array( 'col-xs-12 form_field_wrap contact_attachment_wrap' );
|
| 361 |
),
|
| 362 |
);
|
| 363 |
endif;
|
| 364 |
+
|
| 365 |
+
if ( array_key_exists( 'pirateformsopt_checkbox_field', $pirate_forms_options ) ) {
|
| 366 |
+
$field = $pirate_forms_options['pirateformsopt_checkbox_field'];
|
| 367 |
+
$label = $pirate_forms_options['pirateformsopt_label_checkbox'];
|
| 368 |
+
|
| 369 |
+
/**
|
| 370 |
+
****** checkbox field */
|
| 371 |
+
if ( ! empty( $field ) && ! empty( $label ) ) :
|
| 372 |
+
$required = $field === 'req' ? true : false;
|
| 373 |
+
$wrap_classes = array( 'col-xs-12 form_field_wrap contact_checkbox_wrap ' );
|
| 374 |
+
// If this field was submitted with invalid data
|
| 375 |
+
if ( isset( $_SESSION[ $error_key ]['contact-checkbox'] ) ) {
|
| 376 |
+
$wrap_classes[] = 'error';
|
| 377 |
+
}
|
| 378 |
+
$elements[] = array(
|
| 379 |
+
'required' => $required,
|
| 380 |
+
'required_msg' => $pirate_forms_options['pirateformsopt_label_err_no_checkbox'],
|
| 381 |
+
'type' => 'checkbox',
|
| 382 |
+
'class' => 'form-control',
|
| 383 |
+
'id' => 'pirate-forms-contact-checkbox',
|
| 384 |
+
'wrap' => array(
|
| 385 |
+
'type' => 'div',
|
| 386 |
+
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_checkbox', $wrap_classes ) ),
|
| 387 |
+
),
|
| 388 |
+
'value' => isset( $_REQUEST['pirate-forms-contact-checkbox'] ) ? $_REQUEST['pirate-forms-contact-checkbox'] : '',
|
| 389 |
+
'options' => array(
|
| 390 |
+
'yes' => stripslashes( $label ),
|
| 391 |
+
),
|
| 392 |
+
);
|
| 393 |
+
endif;
|
| 394 |
+
}
|
| 395 |
+
|
| 396 |
/**
|
| 397 |
******* ReCaptcha */
|
| 398 |
if ( ! empty( $pirate_forms_options['pirateformsopt_recaptcha_secretkey'] ) && ! empty( $pirate_forms_options['pirateformsopt_recaptcha_sitekey'] ) && ! empty( $pirate_forms_options['pirateformsopt_recaptcha_field'] ) && ( 'yes' === $pirate_forms_options['pirateformsopt_recaptcha_field'] ) ) :
|
| 514 |
echo $form_builder->attachment;
|
| 515 |
}
|
| 516 |
|
| 517 |
+
if ( isset( $form_builder->contact_checkbox ) ) {
|
| 518 |
+
echo $form_builder->contact_checkbox;
|
| 519 |
+
}
|
| 520 |
+
|
| 521 |
echo '<div class="pirate-forms-footer">';
|
| 522 |
|
| 523 |
if ( isset( $form_builder->captcha ) ) {
|
public/css/front.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
/*
|
| 2 |
-
Version: 2.4.
|
| 3 |
*/
|
| 4 |
.pirate_forms_wrap .form_field_wrap,
|
| 5 |
.widget .pirate_forms_wrap .form_field_wrap {
|
| 1 |
/*
|
| 2 |
+
Version: 2.4.1
|
| 3 |
*/
|
| 4 |
.pirate_forms_wrap .form_field_wrap,
|
| 5 |
.widget .pirate_forms_wrap .form_field_wrap {
|
readme.md
CHANGED
|
@@ -89,6 +89,7 @@ This plugin started as a fork of https://wordpress.org/plugins/proper-contact-fo
|
|
| 89 |
|
| 90 |
|
| 91 |
|
|
|
|
| 92 |
### How I can get support for this contact form plugin ? ###
|
| 93 |
|
| 94 |
You can learn more about PirateForms and ask for help by <a href="https://themeisle.com/contact/" >visiting ThemeIsle website</a>.
|
|
@@ -239,6 +240,12 @@ You can follow the full documentation [here](http://docs.themeisle.com/article/4
|
|
| 239 |
= How to set a success page on successful form submission =
|
| 240 |
[https://docs.themeisle.com/article/836-how-to-set-a-success-page-on-successful-form-submission](https://docs.themeisle.com/article/836-how-to-set-a-success-page-on-successful-form-submission)
|
| 241 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 242 |
== Installation ==
|
| 243 |
|
| 244 |
Activating the Pirate Contact Form plugin is just like any other plugin. If you've uploaded the plugin package to your server already, skip to step 5 below:
|
|
@@ -260,6 +267,11 @@ Activating the Pirate Contact Form plugin is just like any other plugin. If you'
|
|
| 260 |
4. Screenshot 4. Enabling SMTP
|
| 261 |
|
| 262 |
## Changelog ##
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 263 |
### 2.4.0 - 2018-04-02 ###
|
| 264 |
|
| 265 |
* Improves compatibility with various themes.
|
| 89 |
|
| 90 |
|
| 91 |
|
| 92 |
+
|
| 93 |
### How I can get support for this contact form plugin ? ###
|
| 94 |
|
| 95 |
You can learn more about PirateForms and ask for help by <a href="https://themeisle.com/contact/" >visiting ThemeIsle website</a>.
|
| 240 |
= How to set a success page on successful form submission =
|
| 241 |
[https://docs.themeisle.com/article/836-how-to-set-a-success-page-on-successful-form-submission](https://docs.themeisle.com/article/836-how-to-set-a-success-page-on-successful-form-submission)
|
| 242 |
|
| 243 |
+
= Pirate Forms: How to change the default subject of email admin receives =
|
| 244 |
+
[https://docs.themeisle.com/article/838-pirate-forms-how-to-change-the-default-subject-of-email-admin-receives](https://docs.themeisle.com/article/838-pirate-forms-how-to-change-the-default-subject-of-email-admin-receives)
|
| 245 |
+
|
| 246 |
+
= How to send a copy of the sent email to the sender. =
|
| 247 |
+
[https://docs.themeisle.com/article/837-how-to-send-a-copy-of-the-sent-email-to-the-sender](https://docs.themeisle.com/article/837-how-to-send-a-copy-of-the-sent-email-to-the-sender)
|
| 248 |
+
|
| 249 |
== Installation ==
|
| 250 |
|
| 251 |
Activating the Pirate Contact Form plugin is just like any other plugin. If you've uploaded the plugin package to your server already, skip to step 5 below:
|
| 267 |
4. Screenshot 4. Enabling SMTP
|
| 268 |
|
| 269 |
## Changelog ##
|
| 270 |
+
### 2.4.1 - 2018-05-07 ###
|
| 271 |
+
|
| 272 |
+
* GDPR compliance
|
| 273 |
+
|
| 274 |
+
|
| 275 |
### 2.4.0 - 2018-04-02 ###
|
| 276 |
|
| 277 |
* Improves compatibility with various themes.
|
readme.txt
CHANGED
|
@@ -90,6 +90,7 @@ This plugin started as a fork of https://wordpress.org/plugins/proper-contact-fo
|
|
| 90 |
|
| 91 |
|
| 92 |
|
|
|
|
| 93 |
= How I can get support for this contact form plugin ? =
|
| 94 |
|
| 95 |
You can learn more about PirateForms and ask for help by <a href="https://themeisle.com/contact/" >visiting ThemeIsle website</a>.
|
|
@@ -246,6 +247,12 @@ You can follow the full documentation [here](http://docs.themeisle.com/article/4
|
|
| 246 |
= How to send a copy of the sent email to the sender. =
|
| 247 |
[https://docs.themeisle.com/article/837-how-to-send-a-copy-of-the-sent-email-to-the-sender](https://docs.themeisle.com/article/837-how-to-send-a-copy-of-the-sent-email-to-the-sender)
|
| 248 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 249 |
== Installation ==
|
| 250 |
|
| 251 |
Activating the Pirate Contact Form plugin is just like any other plugin. If you've uploaded the plugin package to your server already, skip to step 5 below:
|
|
@@ -267,6 +274,11 @@ Activating the Pirate Contact Form plugin is just like any other plugin. If you'
|
|
| 267 |
4. Screenshot 4. Enabling SMTP
|
| 268 |
|
| 269 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 270 |
= 2.4.0 - 2018-04-02 =
|
| 271 |
|
| 272 |
* Improves compatibility with various themes.
|
| 90 |
|
| 91 |
|
| 92 |
|
| 93 |
+
|
| 94 |
= How I can get support for this contact form plugin ? =
|
| 95 |
|
| 96 |
You can learn more about PirateForms and ask for help by <a href="https://themeisle.com/contact/" >visiting ThemeIsle website</a>.
|
| 247 |
= How to send a copy of the sent email to the sender. =
|
| 248 |
[https://docs.themeisle.com/article/837-how-to-send-a-copy-of-the-sent-email-to-the-sender](https://docs.themeisle.com/article/837-how-to-send-a-copy-of-the-sent-email-to-the-sender)
|
| 249 |
|
| 250 |
+
= How to add a multiple choice field in a form =
|
| 251 |
+
[https://docs.themeisle.com/article/866-how-to-add-a-multiple-choice-field-in-a-form](https://docs.themeisle.com/article/866-how-to-add-a-multiple-choice-field-in-a-form)
|
| 252 |
+
|
| 253 |
+
= How to add a select field in a form =
|
| 254 |
+
[https://docs.themeisle.com/article/867-how-to-add-a-select-field-in-a-form](https://docs.themeisle.com/article/867-how-to-add-a-select-field-in-a-form)
|
| 255 |
+
|
| 256 |
== Installation ==
|
| 257 |
|
| 258 |
Activating the Pirate Contact Form plugin is just like any other plugin. If you've uploaded the plugin package to your server already, skip to step 5 below:
|
| 274 |
4. Screenshot 4. Enabling SMTP
|
| 275 |
|
| 276 |
== Changelog ==
|
| 277 |
+
= 2.4.1 - 2018-05-07 =
|
| 278 |
+
|
| 279 |
+
* GDPR compliance
|
| 280 |
+
|
| 281 |
+
|
| 282 |
= 2.4.0 - 2018-04-02 =
|
| 283 |
|
| 284 |
* Improves compatibility with various themes.
|
themeisle-hash.json
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
{"index.php":"39ab8276fb0e4bd3fcab3270822c5977","pirate-forms.php":"
|
| 1 |
+
{"index.php":"39ab8276fb0e4bd3fcab3270822c5977","pirate-forms.php":"f6b937e432f5487e646b905f2d07f780","uninstall.php":"9d936442a63521d971a6dbc28df9c0d1"}
|
vendor/autoload.php
CHANGED
|
@@ -4,4 +4,4 @@
|
|
| 4 |
|
| 5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
| 6 |
|
| 7 |
-
return
|
| 4 |
|
| 5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
| 6 |
|
| 7 |
+
return ComposerAutoloaderInita5db61f3dfc499606d73fc8e303bc781::getLoader();
|
vendor/autoload_52.php
CHANGED
|
@@ -4,4 +4,4 @@
|
|
| 4 |
|
| 5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
| 6 |
|
| 7 |
-
return
|
| 4 |
|
| 5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
| 6 |
|
| 7 |
+
return ComposerAutoloaderInit48f2620de42f666b4c12b0ca3903f134::getLoader();
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-feedback-deactivate.php
CHANGED
|
@@ -515,12 +515,12 @@ if ( ! class_exists( 'ThemeIsle_SDK_Feedback_Deactivate' ) ) :
|
|
| 515 |
return '<div id="' . $this->product->get_key() . '">'
|
| 516 |
. '<ul class="ti-list">' . $list . '</ul>'
|
| 517 |
. '<div class="actions">'
|
| 518 |
-
|
| 519 |
-
|
| 520 |
-
|
| 521 |
-
|
| 522 |
-
|
| 523 |
-
|
| 524 |
. get_submit_button( $button_cancel, 'primary', $this->product->get_key() . 'ti-deactivate-no', false )
|
| 525 |
. '</div></div>';
|
| 526 |
}
|
| 515 |
return '<div id="' . $this->product->get_key() . '">'
|
| 516 |
. '<ul class="ti-list">' . $list . '</ul>'
|
| 517 |
. '<div class="actions">'
|
| 518 |
+
. get_submit_button(
|
| 519 |
+
$button_submit, 'secondary', $this->product->get_key() . 'ti-deactivate-yes', false, array(
|
| 520 |
+
'data-after-text' => $button_submit,
|
| 521 |
+
'disabled' => true,
|
| 522 |
+
)
|
| 523 |
+
)
|
| 524 |
. get_submit_button( $button_cancel, 'primary', $this->product->get_key() . 'ti-deactivate-no', false )
|
| 525 |
. '</div></div>';
|
| 526 |
}
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-logger.php
CHANGED
|
@@ -170,16 +170,16 @@ if ( ! class_exists( 'ThemeIsle_SDK_Logger' ) ) :
|
|
| 170 |
return '<div >'
|
| 171 |
. '<p>' . $heading . '</p>'
|
| 172 |
. '<div class="actions">'
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
. '</div></div>';
|
| 184 |
}
|
| 185 |
|
| 170 |
return '<div >'
|
| 171 |
. '<p>' . $heading . '</p>'
|
| 172 |
. '<div class="actions">'
|
| 173 |
+
. get_submit_button(
|
| 174 |
+
$button_submit, 'primary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-yes', false, array(
|
| 175 |
+
'data-ti-log-enable' => 1,
|
| 176 |
+
)
|
| 177 |
+
)
|
| 178 |
+
. get_submit_button(
|
| 179 |
+
$button_cancel, 'secondary ' . $this->product->get_key() . '-ti-logger', $this->product->get_key() . 'ti-logger-no', false, array(
|
| 180 |
+
'data-ti-log-enable' => 0,
|
| 181 |
+
)
|
| 182 |
+
)
|
| 183 |
. '</div></div>';
|
| 184 |
}
|
| 185 |
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-product.php
CHANGED
|
@@ -60,11 +60,38 @@ if ( ! class_exists( 'ThemeIsle_SDK_Product' ) ) :
|
|
| 60 |
/**
|
| 61 |
* @var array $allowed_authors The allowed authors.
|
| 62 |
*/
|
| 63 |
-
private $allowed_authors = array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 64 |
/**
|
| 65 |
* @var array $allowed_external_products The allowed external_products.
|
| 66 |
*/
|
| 67 |
-
private $allowed_products = array(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 68 |
/**
|
| 69 |
* @var bool $requires_license Either user needs to activate it with license.
|
| 70 |
*/
|
|
@@ -285,6 +312,52 @@ if ( ! class_exists( 'ThemeIsle_SDK_Product' ) ) :
|
|
| 285 |
return $versions;
|
| 286 |
}
|
| 287 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 288 |
/**
|
| 289 |
* Return theme versions.
|
| 290 |
*
|
|
@@ -322,20 +395,20 @@ if ( ! class_exists( 'ThemeIsle_SDK_Product' ) ) :
|
|
| 322 |
* @return array Array of versions.
|
| 323 |
*/
|
| 324 |
private function get_api_versions() {
|
| 325 |
-
if ( ! $this->is_wordpress_available() ) {
|
| 326 |
-
return array();
|
| 327 |
-
}
|
| 328 |
|
| 329 |
$cache_key = $this->get_key() . '_' . preg_replace( '/[^0-9a-zA-Z ]/m', '', $this->version ) . 'versions';
|
| 330 |
$cache_versions = get_transient( $this->get_key() . '_' . preg_replace( '/[^0-9a-zA-Z ]/m', '', $this->version ) . 'versions' );
|
| 331 |
if ( false == $cache_versions ) {
|
| 332 |
$versions = array();
|
| 333 |
-
if ( $this->
|
| 334 |
-
$versions = $this->
|
| 335 |
-
}
|
| 336 |
-
|
| 337 |
-
|
| 338 |
-
|
|
|
|
|
|
|
|
|
|
| 339 |
}
|
| 340 |
set_transient( $cache_key, $versions, MONTH_IN_SECONDS );
|
| 341 |
} else {
|
| 60 |
/**
|
| 61 |
* @var array $allowed_authors The allowed authors.
|
| 62 |
*/
|
| 63 |
+
private $allowed_authors = array(
|
| 64 |
+
'proteusthemes.com',
|
| 65 |
+
'anarieldesign.com',
|
| 66 |
+
'prothemedesign.com',
|
| 67 |
+
'cssigniter.com',
|
| 68 |
+
);
|
| 69 |
/**
|
| 70 |
* @var array $allowed_external_products The allowed external_products.
|
| 71 |
*/
|
| 72 |
+
private $allowed_products = array(
|
| 73 |
+
'zermatt',
|
| 74 |
+
'neto',
|
| 75 |
+
'olsen',
|
| 76 |
+
'benson',
|
| 77 |
+
'romero',
|
| 78 |
+
'carmack',
|
| 79 |
+
'puzzle',
|
| 80 |
+
'broadsheet',
|
| 81 |
+
'girlywp',
|
| 82 |
+
'veggie',
|
| 83 |
+
'zeko',
|
| 84 |
+
'maishawp',
|
| 85 |
+
'didi',
|
| 86 |
+
'liber',
|
| 87 |
+
'medicpress-pt',
|
| 88 |
+
'adrenaline-pt',
|
| 89 |
+
'consultpress-pt',
|
| 90 |
+
'legalpress-pt',
|
| 91 |
+
'gympress-pt',
|
| 92 |
+
'readable-pt',
|
| 93 |
+
'bolts-pt',
|
| 94 |
+
);
|
| 95 |
/**
|
| 96 |
* @var bool $requires_license Either user needs to activate it with license.
|
| 97 |
*/
|
| 312 |
return $versions;
|
| 313 |
}
|
| 314 |
|
| 315 |
+
/**
|
| 316 |
+
* @return string Return license key, if available.
|
| 317 |
+
*/
|
| 318 |
+
private function get_license() {
|
| 319 |
+
$license_data = get_option( $this->get_key() . '_license_data', '' );
|
| 320 |
+
|
| 321 |
+
if ( empty( $license_data ) ) {
|
| 322 |
+
return '';
|
| 323 |
+
}
|
| 324 |
+
if ( ! isset( $license_data->key ) ) {
|
| 325 |
+
return '';
|
| 326 |
+
}
|
| 327 |
+
|
| 328 |
+
return $license_data->key;
|
| 329 |
+
}
|
| 330 |
+
|
| 331 |
+
/**
|
| 332 |
+
* @return array Array of available versions.
|
| 333 |
+
*/
|
| 334 |
+
private function get_pro_versions() {
|
| 335 |
+
$license = $this->get_license();
|
| 336 |
+
$store_url = trailingslashit( $this->store_url );
|
| 337 |
+
$url = sprintf( '%s?edd_action=get_versions&name=%s&url=%s&license=%s', $store_url, urlencode( $this->get_name() ), urlencode( get_site_url() ), $license );
|
| 338 |
+
$response = wp_remote_get( $url );
|
| 339 |
+
if ( is_wp_error( $response ) ) {
|
| 340 |
+
return array();
|
| 341 |
+
}
|
| 342 |
+
$response = wp_remote_retrieve_body( $response );
|
| 343 |
+
$response = json_decode( $response );
|
| 344 |
+
if ( ! is_object( $response ) ) {
|
| 345 |
+
return array();
|
| 346 |
+
}
|
| 347 |
+
if ( ! isset( $response->versions ) ) {
|
| 348 |
+
return array();
|
| 349 |
+
}
|
| 350 |
+
$versions = array();
|
| 351 |
+
foreach ( $response->versions as $key => $version ) {
|
| 352 |
+
$versions[] = array(
|
| 353 |
+
'version' => $version->version,
|
| 354 |
+
'url' => $version->file,
|
| 355 |
+
);
|
| 356 |
+
}
|
| 357 |
+
|
| 358 |
+
return $versions;
|
| 359 |
+
}
|
| 360 |
+
|
| 361 |
/**
|
| 362 |
* Return theme versions.
|
| 363 |
*
|
| 395 |
* @return array Array of versions.
|
| 396 |
*/
|
| 397 |
private function get_api_versions() {
|
|
|
|
|
|
|
|
|
|
| 398 |
|
| 399 |
$cache_key = $this->get_key() . '_' . preg_replace( '/[^0-9a-zA-Z ]/m', '', $this->version ) . 'versions';
|
| 400 |
$cache_versions = get_transient( $this->get_key() . '_' . preg_replace( '/[^0-9a-zA-Z ]/m', '', $this->version ) . 'versions' );
|
| 401 |
if ( false == $cache_versions ) {
|
| 402 |
$versions = array();
|
| 403 |
+
if ( ! $this->is_wordpress_available() ) {
|
| 404 |
+
$versions = $this->get_pro_versions();
|
| 405 |
+
} else {
|
| 406 |
+
if ( $this->get_type() === 'plugin' ) {
|
| 407 |
+
$versions = $this->get_plugin_versions();
|
| 408 |
+
}
|
| 409 |
+
if ( $this->get_type() === 'theme' ) {
|
| 410 |
+
$versions = $this->get_theme_versions();
|
| 411 |
+
}
|
| 412 |
}
|
| 413 |
set_transient( $cache_key, $versions, MONTH_IN_SECONDS );
|
| 414 |
} else {
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-widget-dashboard-blog.php
CHANGED
|
@@ -110,142 +110,156 @@ if ( ! class_exists( 'ThemeIsle_SDK_Widget_Dashboard_Blog' ) ) :
|
|
| 110 |
$this->setup_feeds();
|
| 111 |
?>
|
| 112 |
<style type="text/css">
|
| 113 |
-
#themeisle ul {
|
| 114 |
-
margin-bottom: 0px;
|
| 115 |
-
}
|
| 116 |
-
|
| 117 |
#themeisle ul li.ti-dw-recommend-item {
|
| 118 |
-
|
| 119 |
padding-left: 7px;
|
| 120 |
border-top: 1px solid #eee;
|
| 121 |
-
|
| 122 |
margin-bottom: 0px;
|
| 123 |
padding-top: 6px;
|
| 124 |
}
|
| 125 |
-
|
| 126 |
#themeisle h2.hndle {
|
| 127 |
-
background-image: url('data:image/
|
| 128 |
background-repeat: no-repeat;
|
| 129 |
-
background-position:
|
| 130 |
-
background-size:
|
| 131 |
}
|
| 132 |
-
|
| 133 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 134 |
display: flex;
|
| 135 |
align-items: center;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 136 |
}
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
float: left;
|
| 140 |
-
width: 89.9%;
|
| 141 |
}
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
width: 100%;
|
| 145 |
-
letter-spacing: 3px;
|
| 146 |
-
display: block;
|
| 147 |
}
|
| 148 |
-
|
| 149 |
.ti-dw-feed-item .ti-dw-month-container {
|
| 150 |
-
|
| 151 |
-
width: 100%;
|
| 152 |
-
display: block;
|
| 153 |
-
font-weight: 600;
|
| 154 |
-
padding: 0px;
|
| 155 |
-
margin-top: -6px;
|
| 156 |
text-transform: uppercase;
|
| 157 |
font-size: 10px;
|
| 158 |
letter-spacing: 1px;
|
|
|
|
| 159 |
}
|
| 160 |
-
|
| 161 |
.ti-dw-feed-item .ti-dw-date-container {
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
|
|
|
| 166 |
text-align: center;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 167 |
}
|
| 168 |
-
|
| 169 |
.ti-dw-recommend-item span {
|
| 170 |
color: #72777c;
|
| 171 |
}
|
| 172 |
-
|
| 173 |
.ti-dw-powered-by {
|
| 174 |
-
font-
|
| 175 |
-
|
| 176 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 177 |
}
|
| 178 |
|
|
|
|
| 179 |
</style>
|
| 180 |
-
<ul>
|
| 181 |
<?php
|
| 182 |
foreach ( $this->items as $item ) {
|
| 183 |
?>
|
| 184 |
-
<li class="ti-dw-feed-item"
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
|
|
|
|
| 198 |
</li>
|
| 199 |
<?php
|
| 200 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 201 |
|
| 202 |
-
|
| 203 |
-
if ( is_array( $recommend ) && ! empty( $recommend ) ) {
|
| 204 |
|
| 205 |
-
$type = $recommend['type'];
|
| 206 |
-
if ( ( $type == 'theme' && current_user_can( 'install_themes' ) ) || ( $type == 'plugin' && current_user_can( 'install_plugins' ) ) ) {
|
| 207 |
-
add_thickbox();
|
| 208 |
$url = add_query_arg(
|
| 209 |
array(
|
| 210 |
-
'
|
| 211 |
-
|
|
|
|
| 212 |
);
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
array(
|
| 218 |
-
'tab' => 'plugin-information',
|
| 219 |
-
'plugin' => $recommend['slug'],
|
| 220 |
-
), network_admin_url( 'plugin-install.php' )
|
| 221 |
-
);
|
| 222 |
-
}
|
| 223 |
-
?>
|
| 224 |
-
<li class="ti-dw-recommend-item ">
|
| 225 |
<span class="ti-dw-recommend"><?php echo apply_filters( 'themeisle_sdk_dashboard_popular_label', sprintf( 'Popular %s', ucwords( $type ) ) ); ?>
|
| 226 |
: </span>
|
| 227 |
-
<?php
|
| 228 |
-
echo trim(
|
| 229 |
-
str_replace(
|
| 230 |
-
array(
|
| 231 |
-
'lite',
|
| 232 |
-
'Lite',
|
| 233 |
-
), '', $recommend['name']
|
| 234 |
-
)
|
| 235 |
-
);
|
| 236 |
-
?>
|
| 237 |
-
(<a class="thickbox open-plugin-details-modal"
|
| 238 |
-
href="<?php echo $url . '&TB_iframe=true&width=600&height=500'; ?>"><?php echo apply_filters( 'themeisle_sdk_dashboard_install_label', 'Install' ); ?></a>)
|
| 239 |
-
</li>
|
| 240 |
-
<li class="ti-dw-powered-by">
|
| 241 |
-
Powered by <?php echo esc_attr( $this->product->get_friendly_name() ); ?>
|
| 242 |
-
</li>
|
| 243 |
-
|
| 244 |
<?php
|
| 245 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 246 |
}
|
| 247 |
-
|
| 248 |
-
|
| 249 |
|
| 250 |
<?php
|
| 251 |
|
| 110 |
$this->setup_feeds();
|
| 111 |
?>
|
| 112 |
<style type="text/css">
|
|
|
|
|
|
|
|
|
|
|
|
|
| 113 |
#themeisle ul li.ti-dw-recommend-item {
|
|
|
|
| 114 |
padding-left: 7px;
|
| 115 |
border-top: 1px solid #eee;
|
|
|
|
| 116 |
margin-bottom: 0px;
|
| 117 |
padding-top: 6px;
|
| 118 |
}
|
|
|
|
| 119 |
#themeisle h2.hndle {
|
| 120 |
+
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3Ny4xMiA3Ny4xMiI+PHRpdGxlPkFzc2V0IDM8L3RpdGxlPjxwYXRoIGQ9Ik03NS43Niw0Ny42cS0xLjUsNi40Ni00LjA3LDkuMjZBMzYuMjIsMzYuMjIsMCwwLDEsNjMuMjYsNjNhNTEsNTEsMCwwLDEtOS43OSw0LjZoLS4xNXY0LjgyQTQuNjYsNC42NiwwLDAsMSw1Miw3NS43Niw0LjA3LDQuMDcsMCwwLDEsNDksNzcuMTJhNCw0LDAsMCwxLTIuMTgtLjYxQTQuOTQsNC45NCwwLDAsMSw0NS4xOSw3NWE0LjQyLDQuNDIsMCwwLDEtNy41NCwwLDQuOTQsNC45NCwwLDAsMS0xLjU4LDEuNSwzLjc1LDMuNzUsMCwwLDEtMiwuNjFBNC4yNyw0LjI3LDAsMCwxLDMwLjI3LDc1YTQuOTQsNC45NCwwLDAsMS0xLjU4LDEuNSw0LDQsMCwwLDEtMi4xOC42MSwzLjkzLDMuOTMsMCwwLDEtMy4xNi0xLjQzLDUuMyw1LjMsMCwwLDEtMS4yMS0zLjU0LDEzLjgxLDEzLjgxLDAsMCwxLTguNTgsMywxMy4yMywxMy4yMywwLDAsMS05LTMuNDdBMTguMjEsMTguMjEsMCwwLDAsOSw3MC43OWExNC4yNiwxNC4yNiwwLDAsMS03LjgzLTUuNDIsMTYuMTIsMTYuMTIsMCwwLDAsNS4xOS4wNywxMi44OSwxMi44OSwwLDAsMCw0LjktMS43M1EzLjE1LDU1LjQzLDEuMDUsNTAuNDZhMTgsMTgsMCwwLDEtMS02LjkzQTQwLDQwLDAsMCwxLDEuMjEsMzQsMjYuNTksMjYuNTksMCwwLDEsNS4yNywyNC4xUTguNDQsMTkuNDMsMTMsMTkuNDNhMy40MSwzLjQxLDAsMCwxLDMuNDcsMi4yNmMuNi0uOCwxLjItMS41NiwxLjgxLTIuMjZsLjQ1LS40NS43NS0uNzUsMS4wNS0xLjgxYTM1LjIsMzUuMiwwLDAsMSwyLjExLTMuMzIsMjguNTcsMjguNTcsMCwwLDEsOS4xMi03LjY4QTIzLjQsMjMuNCwwLDAsMSw0Mi45MywyLjU2YTIyLjIyLDIyLjIyLDAsMCwxLDIuNzEuMTVBOC4xNiw4LjE2LDAsMCwxLDUxLjgxLDAsOC42OSw4LjY5LDAsMCwxLDU4LDIuNDFhMS41MSwxLjUxLDAsMCwxLC4xNS42OGMwLC4yNS0uNTUuOTMtMS42NiwybC0uMy4zYTkuNjksOS42OSwwLDAsMSwxLjU4LjgzYy41NS4zNS44My42NS44My45YTEuNjIsMS42MiwwLDAsMS0uNiwxbC0uMTUuMTVxNi43OCw2LDguNTgsMTYuMjdBMy4zLDMuMywwLDAsMSw2OSwyMy4zNWE2LjQ4LDYuNDgsMCwwLDEsNC4yMiwyLjFxMy45MiwzLjMyLDMuOTIsMTEuOUE0Mi4wNSw0Mi4wNSwwLDAsMSw3NS43Niw0Ny42Wk01My42Miw1NC4wN2EyNCwyNCwwLDAsMS0xNCw0LjUyQTIxLjQxLDIxLjQxLDAsMCwxLDI3LDU0LjY3LDI0LjI4LDI0LjI4LDAsMCwxLDE4LjUzLDQ1YTI5LDI5LDAsMCwxLTMtMTMsMzEuNzgsMzEuNzgsMCwwLDEsLjkxLTcuNTNBMzIuMTcsMzIuMTcsMCwwLDAsMTEuOSw0MS4yN2EzMy41LDMzLjUsMCwwLDAsMi43OSwxMy40LDI5LjEsMjkuMSwwLDAsMCw3LjksMTAuODUsNC42OCw0LjY4LDAsMCwxLDEuNjYtMS44OCw0LjE3LDQuMTcsMCwwLDEsNC40NC0uMDgsNC41LDQuNSwwLDAsMSwxLjU4LDEuNjZBNC4yLDQuMiwwLDAsMSwzNCw2M2EzLjgzLDMuODMsMCwwLDEsMiwuNiw0LjUsNC41LDAsMCwxLDEuNTgsMS42Niw0LjI3LDQuMjcsMCwwLDEsNy41NCwwLDQuNSw0LjUsMCwwLDEsMS41OC0xLjY2LDQuMTcsNC4xNywwLDAsMSw0LjQ0LjA4LDMuODYsMy44NiwwLDAsMSwxLjUxLDEuNzMsMzAuMTcsMzAuMTcsMCwwLDAsNy42OC05Ljk0LDMxLjE4LDMxLjE4LDAsMCwwLDMuMTYtMTIuMzVBMjguMzksMjguMzksMCwwLDEsNTMuNjIsNTQuMDdaTTI4Ljc3LDY1LjM3YTMuMSwzLjEsMCwwLDAtNC4zNywwLDMuMDYsMy4wNiwwLDAsMC0uOSwyLjI2djQuODJhMy4zMiwzLjMyLDAsMCwwLC45LDIuMzMsMi45MywyLjkzLDAsMCwwLDQuMzcsMCwzLjMyLDMuMzIsMCwwLDAsLjktMi4zM1Y2Ny42M0EzLjA2LDMuMDYsMCwwLDAsMjguNzcsNjUuMzdabS45LTQ4YTQuMjQsNC4yNCwwLDAsMCwzLjQ3LDEuNzMsNC40NSw0LjQ1LDAsMCwwLDMuNTQtMS43Myw2LDYsMCwwLDAsMS40My0zLjkyLDUuNyw1LjcsMCwwLDAtMS40My0zLjg0QTQuNTMsNC41MywwLDAsMCwzMy4xNCw4YTQuMzEsNC4zMSwwLDAsMC0zLjQ3LDEuNjYsNS43OSw1Ljc5LDAsMCwwLTEuMzUsMy43N0E2LjMzLDYuMzMsMCwwLDAsMjkuNjcsMTcuNFptNi40OCw0OGEzLjEsMy4xLDAsMCwwLTQuMzcsMCwzLjA2LDMuMDYsMCwwLDAtLjksMi4yNnY0LjgyYTMuMzIsMy4zMiwwLDAsMCwuOSwyLjMzLDIuOTMsMi45MywwLDAsMCw0LjM3LDAsMy4zMiwzLjMyLDAsMCwwLC45LTIuMzNWNjcuNjNBMy4wNiwzLjA2LDAsMCwwLDM2LjE1LDY1LjM3Wm0tNC4wNy01NC4zYTIuMzcsMi4zNywwLDAsMSwyLTEsMi4xNywyLjE3LDAsMCwxLDEuODgsMSw0LjEsNC4xLDAsMCwxLDAsNC41MiwyLjE3LDIuMTcsMCwwLDEtMS44OCwxLDIuMzcsMi4zNywwLDAsMS0yLTEsMy43MiwzLjcyLDAsMCwxLS43NS0yLjM0QTMuNDksMy40OSwwLDAsMSwzMi4wOCwxMS4wN1ptNSw5LjQxYTIwLjYxLDIwLjYxLDAsMCwwLTMuNTQsMTIuMjgsMTcuMTUsMTcuMTUsMCwwLDAsNC4wNywxMSwxMi40MywxMi40MywwLDAsMCw5Ljg3LDQuNDUsMTUuMywxNS4zLDAsMCwwLDktMywxMywxMywwLDAsMCwuNi0zLjMycTAtMy4zMi0zLjE2LTMuMzFhOC41OCw4LjU4LDAsMCwwLTIsLjNxLTcuODMsMS41LTExLjU5LS4zLTQuNTMtMi4xMi00LjUyLTkuMzRBMzcuOTIsMzcuOTIsMCwwLDEsMzcuMDUsMjAuNDhaTTYxLjQ1LDE3QTEyLjg0LDEyLjg0LDAsMCwwLDUxLjIxLDEyLjJhMTUuMTEsMTUuMTEsMCwwLDAtNi40LDEuNDMsMTcuODMsMTcuODMsMCwwLDAtNS41LDRxLTYuMTgsMjAuNjQsNi4xOCwyMC42NEEyNC43NSwyNC43NSwwLDAsMCw0OSwzNy44MWEzOC45MiwzOC45MiwwLDAsMSw0LjgyLS40NmMxLjgxLDAsMy4wNi40NiwzLjc3LDEuMzZxMS4zNSwxLjUuNzUsNS4xMmEyMS43MiwyMS43MiwwLDAsMCw1LTcuMTVBMjEuMzgsMjEuMzgsMCwwLDAsNjUuMDcsMjgsMTcuNDQsMTcuNDQsMCwwLDAsNjEuNDUsMTdaTTQzLjYsNjUuMzdhMi43MiwyLjcyLDAsMCwwLTIuMS0uOSwzLDMsMCwwLDAtMi4xOS45LDMuMDYsMy4wNiwwLDAsMC0uOSwyLjI2djQuODJhMy4zMiwzLjMyLDAsMCwwLC45LDIuMzMsMi44NCwyLjg0LDAsMCwwLDIuMTksMSwyLjYxLDIuNjEsMCwwLDAsMi4xLTEsMy40NSwzLjQ1LDAsMCwwLC44My0yLjMzVjY3LjYzQTMuMTcsMy4xNywwLDAsMCw0My42LDY1LjM3Wm03LjQ2LDBhMywzLDAsMCwwLTIuMTgtLjksMi43MywyLjczLDAsMCwwLTIuMTEuOSwzLjE3LDMuMTcsMCwwLDAtLjgzLDIuMjZ2NC44MmEzLjQ1LDMuNDUsMCwwLDAsLjgzLDIuMzMsMi42MSwyLjYxLDAsMCwwLDIuMTEsMSwyLjgzLDIuODMsMCwwLDAsMi4xOC0xLDMuMzIsMy4zMiwwLDAsMCwuOS0yLjMzVjY3LjYzQTMuMDYsMy4wNiwwLDAsMCw1MS4wNiw2NS4zN1oiLz48L3N2Zz4=');
|
| 121 |
background-repeat: no-repeat;
|
| 122 |
+
background-position: 92% 50%;
|
| 123 |
+
background-size: 30px;
|
| 124 |
}
|
| 125 |
+
#themeisle .inside {
|
| 126 |
+
padding: 0;
|
| 127 |
+
}
|
| 128 |
+
.ti-feed-list {
|
| 129 |
+
padding: 0 12px 5px;
|
| 130 |
+
margin-bottom: 10px;
|
| 131 |
+
border-bottom: 1px solid #eee;
|
| 132 |
+
}
|
| 133 |
+
.ti-dw-feed-item a {
|
| 134 |
display: flex;
|
| 135 |
align-items: center;
|
| 136 |
+
margin-bottom: 5px;
|
| 137 |
+
padding: 5px;
|
| 138 |
+
transition: .2s ease;
|
| 139 |
+
border-radius: 3px;
|
| 140 |
}
|
| 141 |
+
.ti-dw-feed-item a:hover {
|
| 142 |
+
background-color: #f8f8f8;
|
|
|
|
|
|
|
| 143 |
}
|
| 144 |
+
.ti-dw-feed-item a:hover .ti-dw-date-container {
|
| 145 |
+
opacity: .9;
|
|
|
|
|
|
|
|
|
|
| 146 |
}
|
|
|
|
| 147 |
.ti-dw-feed-item .ti-dw-month-container {
|
| 148 |
+
margin-top: -5px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 149 |
text-transform: uppercase;
|
| 150 |
font-size: 10px;
|
| 151 |
letter-spacing: 1px;
|
| 152 |
+
font-weight: 700;
|
| 153 |
}
|
|
|
|
| 154 |
.ti-dw-feed-item .ti-dw-date-container {
|
| 155 |
+
border-radius: 3px;
|
| 156 |
+
transition: .2s ease;
|
| 157 |
+
min-height: 35px;
|
| 158 |
+
margin-right: 5px;
|
| 159 |
+
min-width: 35px;
|
| 160 |
text-align: center;
|
| 161 |
+
border: 1px solid #2a6f97;
|
| 162 |
+
color: #fff;
|
| 163 |
+
background: #2ea2cc;
|
| 164 |
+
display: flex;
|
| 165 |
+
flex-direction: column;
|
| 166 |
+
justify-content: center;
|
| 167 |
+
}
|
| 168 |
+
.ti-dw-footer {
|
| 169 |
+
padding: 0 12px 5px;
|
| 170 |
+
text-align: center;
|
| 171 |
+
}
|
| 172 |
+
.ti-dw-recommend-item {
|
| 173 |
+
display: block;
|
| 174 |
}
|
|
|
|
| 175 |
.ti-dw-recommend-item span {
|
| 176 |
color: #72777c;
|
| 177 |
}
|
|
|
|
| 178 |
.ti-dw-powered-by {
|
| 179 |
+
font-size: 11px;
|
| 180 |
+
margin-top: 3px;
|
| 181 |
+
display: block;
|
| 182 |
+
color: #72777c;
|
| 183 |
+
}
|
| 184 |
+
.ti-dw-powered-by span {
|
| 185 |
+
font-weight: 600;
|
| 186 |
}
|
| 187 |
|
| 188 |
+
|
| 189 |
</style>
|
| 190 |
+
<ul class="ti-feed-list">
|
| 191 |
<?php
|
| 192 |
foreach ( $this->items as $item ) {
|
| 193 |
?>
|
| 194 |
+
<li class="ti-dw-feed-item">
|
| 195 |
+
<a href="
|
| 196 |
+
<?php
|
| 197 |
+
echo add_query_arg(
|
| 198 |
+
array(
|
| 199 |
+
'utm_campaign' => 'feed',
|
| 200 |
+
'utm_medium' => 'dashboard_widget',
|
| 201 |
+
), $item['link']
|
| 202 |
+
);
|
| 203 |
+
?>
|
| 204 |
+
" target="_blank">
|
| 205 |
+
<span class="ti-dw-date-container"><span
|
| 206 |
+
class="ti-dw-day-container"><?php echo date( 'd', $item['date'] ); ?></span> <span
|
| 207 |
+
class="ti-dw-month-container"><?php echo substr( date( 'M', $item['date'] ), 0, 3 ); ?></span></span><?php echo $item['title']; ?>
|
| 208 |
+
</a>
|
| 209 |
</li>
|
| 210 |
<?php
|
| 211 |
}
|
| 212 |
+
?>
|
| 213 |
+
</ul>
|
| 214 |
+
<?php
|
| 215 |
+
$recommend = apply_filters( 'themeisle_sdk_recommend_plugin_or_theme', array() );
|
| 216 |
+
if ( is_array( $recommend ) && ! empty( $recommend ) ) {
|
| 217 |
+
|
| 218 |
+
$type = $recommend['type'];
|
| 219 |
+
if ( ( $type == 'theme' && current_user_can( 'install_themes' ) ) || ( $type == 'plugin' && current_user_can( 'install_plugins' ) ) ) {
|
| 220 |
+
add_thickbox();
|
| 221 |
+
$url = add_query_arg(
|
| 222 |
+
array(
|
| 223 |
+
'theme' => $recommend['slug'],
|
| 224 |
+
), network_admin_url( 'theme-install.php' )
|
| 225 |
+
);
|
| 226 |
|
| 227 |
+
if ( 'plugin' === $type ) {
|
|
|
|
| 228 |
|
|
|
|
|
|
|
|
|
|
| 229 |
$url = add_query_arg(
|
| 230 |
array(
|
| 231 |
+
'tab' => 'plugin-information',
|
| 232 |
+
'plugin' => $recommend['slug'],
|
| 233 |
+
), network_admin_url( 'plugin-install.php' )
|
| 234 |
);
|
| 235 |
+
}
|
| 236 |
+
?>
|
| 237 |
+
<div class="ti-dw-footer">
|
| 238 |
+
<span class="ti-dw-recommend-item ">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 239 |
<span class="ti-dw-recommend"><?php echo apply_filters( 'themeisle_sdk_dashboard_popular_label', sprintf( 'Popular %s', ucwords( $type ) ) ); ?>
|
| 240 |
: </span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 241 |
<?php
|
| 242 |
+
echo trim(
|
| 243 |
+
str_replace(
|
| 244 |
+
array(
|
| 245 |
+
'lite',
|
| 246 |
+
'Lite',
|
| 247 |
+
), '', $recommend['name']
|
| 248 |
+
)
|
| 249 |
+
);
|
| 250 |
+
?>
|
| 251 |
+
(<a class="thickbox open-plugin-details-modal"
|
| 252 |
+
href="<?php echo $url . '&TB_iframe=true&width=600&height=500'; ?>"><?php echo apply_filters( 'themeisle_sdk_dashboard_install_label', 'Install' ); ?></a>)
|
| 253 |
+
</span>
|
| 254 |
+
<span class="ti-dw-powered-by">
|
| 255 |
+
Powered by <span><?php echo esc_attr( $this->product->get_friendly_name() ); ?></span>
|
| 256 |
+
</span>
|
| 257 |
+
</div>
|
| 258 |
+
|
| 259 |
+
<?php
|
| 260 |
}
|
| 261 |
+
}
|
| 262 |
+
?>
|
| 263 |
|
| 264 |
<?php
|
| 265 |
|
vendor/codeinwp/themeisle-sdk/load.php
CHANGED
|
@@ -11,7 +11,7 @@
|
|
| 11 |
*/
|
| 12 |
|
| 13 |
// Current SDK version and path.
|
| 14 |
-
$themeisle_sdk_version = '2.
|
| 15 |
$themeisle_sdk_path = dirname( __FILE__ );
|
| 16 |
|
| 17 |
global $themeisle_sdk_max_version;
|
| 11 |
*/
|
| 12 |
|
| 13 |
// Current SDK version and path.
|
| 14 |
+
$themeisle_sdk_version = '2.2.3';
|
| 15 |
$themeisle_sdk_path = dirname( __FILE__ );
|
| 16 |
|
| 17 |
global $themeisle_sdk_max_version;
|
vendor/composer/autoload_real.php
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
|
| 3 |
// autoload_real.php @generated by Composer
|
| 4 |
|
| 5 |
-
class
|
| 6 |
{
|
| 7 |
private static $loader;
|
| 8 |
|
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit63fd87a388ea28e12ff6d1ed77ff179e
|
|
| 19 |
return self::$loader;
|
| 20 |
}
|
| 21 |
|
| 22 |
-
spl_autoload_register(array('
|
| 23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
| 24 |
-
spl_autoload_unregister(array('
|
| 25 |
|
| 26 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
| 27 |
foreach ($map as $namespace => $path) {
|
|
@@ -42,14 +42,14 @@ class ComposerAutoloaderInit63fd87a388ea28e12ff6d1ed77ff179e
|
|
| 42 |
|
| 43 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
| 44 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
| 45 |
-
|
| 46 |
}
|
| 47 |
|
| 48 |
return $loader;
|
| 49 |
}
|
| 50 |
}
|
| 51 |
|
| 52 |
-
function
|
| 53 |
{
|
| 54 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
| 55 |
require $file;
|
| 2 |
|
| 3 |
// autoload_real.php @generated by Composer
|
| 4 |
|
| 5 |
+
class ComposerAutoloaderInita5db61f3dfc499606d73fc8e303bc781
|
| 6 |
{
|
| 7 |
private static $loader;
|
| 8 |
|
| 19 |
return self::$loader;
|
| 20 |
}
|
| 21 |
|
| 22 |
+
spl_autoload_register(array('ComposerAutoloaderInita5db61f3dfc499606d73fc8e303bc781', 'loadClassLoader'), true, true);
|
| 23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
| 24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInita5db61f3dfc499606d73fc8e303bc781', 'loadClassLoader'));
|
| 25 |
|
| 26 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
| 27 |
foreach ($map as $namespace => $path) {
|
| 42 |
|
| 43 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
| 44 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
| 45 |
+
composerRequirea5db61f3dfc499606d73fc8e303bc781($fileIdentifier, $file);
|
| 46 |
}
|
| 47 |
|
| 48 |
return $loader;
|
| 49 |
}
|
| 50 |
}
|
| 51 |
|
| 52 |
+
function composerRequirea5db61f3dfc499606d73fc8e303bc781($fileIdentifier, $file)
|
| 53 |
{
|
| 54 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
| 55 |
require $file;
|
vendor/composer/autoload_real_52.php
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
|
| 3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
| 4 |
|
| 5 |
-
class
|
| 6 |
private static $loader;
|
| 7 |
|
| 8 |
public static function loadClassLoader($class) {
|
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit31b0a0f66e362c1e2219d071f45cca61 {
|
|
| 19 |
return self::$loader;
|
| 20 |
}
|
| 21 |
|
| 22 |
-
spl_autoload_register(array('
|
| 23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
| 24 |
-
spl_autoload_unregister(array('
|
| 25 |
|
| 26 |
$vendorDir = dirname(dirname(__FILE__));
|
| 27 |
$baseDir = dirname($vendorDir);
|
| 2 |
|
| 3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
| 4 |
|
| 5 |
+
class ComposerAutoloaderInit48f2620de42f666b4c12b0ca3903f134 {
|
| 6 |
private static $loader;
|
| 7 |
|
| 8 |
public static function loadClassLoader($class) {
|
| 19 |
return self::$loader;
|
| 20 |
}
|
| 21 |
|
| 22 |
+
spl_autoload_register(array('ComposerAutoloaderInit48f2620de42f666b4c12b0ca3903f134', 'loadClassLoader'), true /*, true */);
|
| 23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
| 24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit48f2620de42f666b4c12b0ca3903f134', 'loadClassLoader'));
|
| 25 |
|
| 26 |
$vendorDir = dirname(dirname(__FILE__));
|
| 27 |
$baseDir = dirname($vendorDir);
|
vendor/composer/installed.json
CHANGED
|
@@ -6,15 +6,15 @@
|
|
| 6 |
"source": {
|
| 7 |
"type": "git",
|
| 8 |
"url": "https://github.com/Codeinwp/themeisle-sdk.git",
|
| 9 |
-
"reference": "
|
| 10 |
},
|
| 11 |
"dist": {
|
| 12 |
"type": "zip",
|
| 13 |
-
"url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/
|
| 14 |
-
"reference": "
|
| 15 |
"shasum": ""
|
| 16 |
},
|
| 17 |
-
"time": "2018-
|
| 18 |
"type": "library",
|
| 19 |
"installation-source": "dist",
|
| 20 |
"autoload": {
|
| 6 |
"source": {
|
| 7 |
"type": "git",
|
| 8 |
"url": "https://github.com/Codeinwp/themeisle-sdk.git",
|
| 9 |
+
"reference": "ae7fce00ef4fdec1b3f5b918ee0b5e9fe18d588f"
|
| 10 |
},
|
| 11 |
"dist": {
|
| 12 |
"type": "zip",
|
| 13 |
+
"url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/ae7fce00ef4fdec1b3f5b918ee0b5e9fe18d588f",
|
| 14 |
+
"reference": "ae7fce00ef4fdec1b3f5b918ee0b5e9fe18d588f",
|
| 15 |
"shasum": ""
|
| 16 |
},
|
| 17 |
+
"time": "2018-04-30 11:29:58",
|
| 18 |
"type": "library",
|
| 19 |
"installation-source": "dist",
|
| 20 |
"autoload": {
|
