Version Description
- 2017-12-28
Download this release
Release Info
| Developer | codeinwp |
| Plugin | |
| Version | 2.3.1 |
| Comparing to | |
| See all releases | |
Code changes from version 2.3.0 to 2.3.1
- CHANGELOG.md +6 -0
- admin/class-pirateforms-admin.php +8 -8
- admin/css/wp-admin.css +0 -41
- admin/js/scripts-admin.js +9 -0
- includes/class-pirateforms-html.php +9 -2
- includes/class-pirateforms-util.php +6 -4
- includes/class-pirateforms.php +1 -1
- languages/pirate-forms.pot +684 -1
- pirate-forms.php +2 -2
- public/class-pirateforms-public.php +9 -7
- public/css/front.css +41 -51
- readme.md +7 -0
- readme.txt +17 -0
- vendor/autoload.php +1 -1
- vendor/autoload_52.php +1 -1
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-endpoints.php +312 -0
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-licenser.php +1 -0
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-loader.php +3 -0
- vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-logger.php +13 -4
- vendor/codeinwp/themeisle-sdk/load.php +1 -1
- vendor/codeinwp/themeisle-sdk/start.php +1 -0
- 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,10 @@
|
|
| 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
### v2.3.0 - 2017-11-27
|
| 3 |
**Changes:**
|
| 4 |
* Adds email content wysiwyg editor.
|
| 1 |
|
| 2 |
+
### v2.3.1 - 2017-12-28
|
| 3 |
+
**Changes:**
|
| 4 |
+
* Improves layout and compatibility with various themes.
|
| 5 |
+
* Improves form default email format.
|
| 6 |
+
* Fix issues with various special characters in the magic tag fields.
|
| 7 |
+
|
| 8 |
### v2.3.0 - 2017-11-27
|
| 9 |
**Changes:**
|
| 10 |
* Adds email content wysiwyg editor.
|
admin/class-pirateforms-admin.php
CHANGED
|
@@ -67,7 +67,7 @@ class PirateForms_Admin {
|
|
| 67 |
&& isset( $_GET['page'] ) && $_GET['page'] == 'pirateforms-admin'
|
| 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' ), $this->version );
|
| 71 |
wp_localize_script(
|
| 72 |
'pirateforms_scripts_admin', 'cwp_top_ajaxload', array(
|
| 73 |
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
|
@@ -251,10 +251,10 @@ class PirateForms_Admin {
|
|
| 251 |
}
|
| 252 |
|
| 253 |
// the key(s) will be added to the div as class names
|
| 254 |
-
// to enable tooltip popup add '
|
| 255 |
return apply_filters(
|
| 256 |
'pirate_forms_admin_controls', array(
|
| 257 |
-
'pirate_options
|
| 258 |
'heading' => __( 'Form processing options', 'pirate-forms' ),
|
| 259 |
'controls' => apply_filters(
|
| 260 |
'pirate_forms_admin_controls_for_options', array(
|
|
@@ -395,7 +395,7 @@ class PirateForms_Admin {
|
|
| 395 |
)
|
| 396 |
),
|
| 397 |
),
|
| 398 |
-
'pirate_fields
|
| 399 |
'heading' => __( 'Fields Settings', 'pirate-forms' ),
|
| 400 |
'controls' => apply_filters(
|
| 401 |
'pirate_forms_admin_controls_for_fields', array(
|
|
@@ -546,7 +546,7 @@ class PirateForms_Admin {
|
|
| 546 |
)
|
| 547 |
),
|
| 548 |
),
|
| 549 |
-
'pirate_labels
|
| 550 |
'heading' => __( 'Fields Labels', 'pirate-forms' ),
|
| 551 |
'controls' => apply_filters(
|
| 552 |
'pirate_forms_admin_controls_for_field_labels', array(
|
|
@@ -622,7 +622,7 @@ class PirateForms_Admin {
|
|
| 622 |
'value' => __( 'Email content', 'pirate-forms' ),
|
| 623 |
'html' => '<br/><br/>' . esc_attr( __( 'You can use the next magic tags:', 'pirate-forms' ) ) . '<br/>' . PirateForms_Util::get_magic_tags(),
|
| 624 |
),
|
| 625 |
-
'default' => PirateForms_Util::get_default_email_content(),
|
| 626 |
'value' => PirateForms_Util::get_option( 'pirateformsopt_email_content' ),
|
| 627 |
'wrap' => array(
|
| 628 |
'type' => 'div',
|
|
@@ -637,7 +637,7 @@ class PirateForms_Admin {
|
|
| 637 |
)
|
| 638 |
),
|
| 639 |
),
|
| 640 |
-
'pirate_alerts
|
| 641 |
'heading' => __( 'Alert Messages', 'pirate-forms' ),
|
| 642 |
'controls' => apply_filters(
|
| 643 |
'pirate_forms_admin_controls_for_alerts', array(
|
|
@@ -727,7 +727,7 @@ class PirateForms_Admin {
|
|
| 727 |
)
|
| 728 |
),
|
| 729 |
),
|
| 730 |
-
'pirate_smtp
|
| 731 |
'heading' => __( 'SMTP Options', 'pirate-forms' ),
|
| 732 |
'controls' => apply_filters(
|
| 733 |
'pirate_forms_admin_controls_for_smtp', array(
|
| 67 |
&& isset( $_GET['page'] ) && $_GET['page'] == 'pirateforms-admin'
|
| 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' ),
|
| 251 |
}
|
| 252 |
|
| 253 |
// the key(s) will be added to the div as class names
|
| 254 |
+
// to enable tooltip popup add 'pirate_tooltip'
|
| 255 |
return apply_filters(
|
| 256 |
'pirate_forms_admin_controls', array(
|
| 257 |
+
'pirate_options pirate_tooltip' => array(
|
| 258 |
'heading' => __( 'Form processing options', 'pirate-forms' ),
|
| 259 |
'controls' => apply_filters(
|
| 260 |
'pirate_forms_admin_controls_for_options', array(
|
| 395 |
)
|
| 396 |
),
|
| 397 |
),
|
| 398 |
+
'pirate_fields pirate_tooltip' => array(
|
| 399 |
'heading' => __( 'Fields Settings', 'pirate-forms' ),
|
| 400 |
'controls' => apply_filters(
|
| 401 |
'pirate_forms_admin_controls_for_fields', array(
|
| 546 |
)
|
| 547 |
),
|
| 548 |
),
|
| 549 |
+
'pirate_labels pirate_tooltip' => array(
|
| 550 |
'heading' => __( 'Fields Labels', 'pirate-forms' ),
|
| 551 |
'controls' => apply_filters(
|
| 552 |
'pirate_forms_admin_controls_for_field_labels', array(
|
| 622 |
'value' => __( 'Email content', 'pirate-forms' ),
|
| 623 |
'html' => '<br/><br/>' . esc_attr( __( 'You can use the next magic tags:', 'pirate-forms' ) ) . '<br/>' . PirateForms_Util::get_magic_tags(),
|
| 624 |
),
|
| 625 |
+
'default' => PirateForms_Util::get_default_email_content( true, null, true ),
|
| 626 |
'value' => PirateForms_Util::get_option( 'pirateformsopt_email_content' ),
|
| 627 |
'wrap' => array(
|
| 628 |
'type' => 'div',
|
| 637 |
)
|
| 638 |
),
|
| 639 |
),
|
| 640 |
+
'pirate_alerts pirate_tooltip' => array(
|
| 641 |
'heading' => __( 'Alert Messages', 'pirate-forms' ),
|
| 642 |
'controls' => apply_filters(
|
| 643 |
'pirate_forms_admin_controls_for_alerts', array(
|
| 727 |
)
|
| 728 |
),
|
| 729 |
),
|
| 730 |
+
'pirate_smtp pirate_tooltip' => array(
|
| 731 |
'heading' => __( 'SMTP Options', 'pirate-forms' ),
|
| 732 |
'controls' => apply_filters(
|
| 733 |
'pirate_forms_admin_controls_for_smtp', array(
|
admin/css/wp-admin.css
CHANGED
|
@@ -170,47 +170,6 @@
|
|
| 170 |
margin-right: 0;
|
| 171 |
}
|
| 172 |
|
| 173 |
-
div.pirate_dashicons > form > div > label > span.dashicons {
|
| 174 |
-
margin-left: 10px;
|
| 175 |
-
color: #888;
|
| 176 |
-
}
|
| 177 |
-
|
| 178 |
-
div.pirate_dashicons > form > div > label > span.dashicons:after {
|
| 179 |
-
display: none;
|
| 180 |
-
position: absolute;
|
| 181 |
-
margin-left: 5px;
|
| 182 |
-
border-right: 5px solid transparent;
|
| 183 |
-
border-bottom: 5px solid black;
|
| 184 |
-
border-left: 5px solid transparent;
|
| 185 |
-
content: "";
|
| 186 |
-
}
|
| 187 |
-
|
| 188 |
-
div.pirate_dashicons > form > div > label > .pirate_forms_option_description {
|
| 189 |
-
display: none;
|
| 190 |
-
position: absolute;
|
| 191 |
-
z-index: 999;
|
| 192 |
-
width: 200px;
|
| 193 |
-
margin-top: 4px;
|
| 194 |
-
margin-left: 190px;
|
| 195 |
-
padding: 15px;
|
| 196 |
-
border-radius: 5px;
|
| 197 |
-
color: #fff;
|
| 198 |
-
background: rgba(0, 0, 0, 0.8);
|
| 199 |
-
font-size: 11px;
|
| 200 |
-
line-height: 16px;
|
| 201 |
-
text-align: left;
|
| 202 |
-
}
|
| 203 |
-
|
| 204 |
-
div.pirate_dashicons > form > div > label > span.dashicons:hover + .pirate_forms_option_description,
|
| 205 |
-
div.pirate_dashicons > form > div > label > span.dashicons:hover::after {
|
| 206 |
-
display: block;
|
| 207 |
-
}
|
| 208 |
-
|
| 209 |
-
div.pirate_dashicons > form > div > label {
|
| 210 |
-
width: 400px;
|
| 211 |
-
font-weight: normal;
|
| 212 |
-
}
|
| 213 |
-
|
| 214 |
.pirate_forms_contact_settings h3.title,
|
| 215 |
.pirate_forms_welcome_text {
|
| 216 |
margin: 10px 0 30px;
|
| 170 |
margin-right: 0;
|
| 171 |
}
|
| 172 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 173 |
.pirate_forms_contact_settings h3.title,
|
| 174 |
.pirate_forms_welcome_text {
|
| 175 |
margin: 10px 0 30px;
|
admin/js/scripts-admin.js
CHANGED
|
@@ -125,4 +125,13 @@ function initAll(){
|
|
| 125 |
span.removeClass('dashicons-hidden').addClass('dashicons-visibility');
|
| 126 |
}
|
| 127 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 128 |
}
|
| 125 |
span.removeClass('dashicons-hidden').addClass('dashicons-visibility');
|
| 126 |
}
|
| 127 |
});
|
| 128 |
+
|
| 129 |
+
// tootips in settings.
|
| 130 |
+
jQuery( document ).tooltip({
|
| 131 |
+
items: '.dashicons-editor-help',
|
| 132 |
+
hide: 2000,
|
| 133 |
+
content: function(){
|
| 134 |
+
return jQuery(this).find('div').html();
|
| 135 |
+
}
|
| 136 |
+
});
|
| 137 |
}
|
includes/class-pirateforms-html.php
CHANGED
|
@@ -78,7 +78,14 @@ class PirateForms_HTML {
|
|
| 78 |
$html .= esc_html( $args['label']['value'] );
|
| 79 |
}
|
| 80 |
if ( isset( $args['label']['html'] ) ) {
|
| 81 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 82 |
}
|
| 83 |
if ( isset( $args['label']['desc'] ) ) {
|
| 84 |
$html .= '<div';
|
|
@@ -197,7 +204,7 @@ class PirateForms_HTML {
|
|
| 197 |
unset( $args['required_msg'] );
|
| 198 |
}
|
| 199 |
|
| 200 |
-
$html = '<div class="pirate-forms-file-upload-wrapper"><input type="file" ' . $this->get_common( $args, array( 'value' ) ) . '
|
| 201 |
|
| 202 |
return $this->get_wrap( $args, $html );
|
| 203 |
}
|
| 78 |
$html .= esc_html( $args['label']['value'] );
|
| 79 |
}
|
| 80 |
if ( isset( $args['label']['html'] ) ) {
|
| 81 |
+
$span = $args['label']['html'];
|
| 82 |
+
if ( strpos( $span, 'dashicons-editor-help' ) !== false && isset( $args['label']['desc'] ) && isset( $args['label']['desc']['value'] ) ) {
|
| 83 |
+
$class = isset( $args['label']['desc']['class'] ) ? $args['label']['desc']['class'] : '';
|
| 84 |
+
$span = str_replace( '></', '><div style="display: none" class="' . $class . '">' . $args['label']['desc']['value'] . '</div></', $span );
|
| 85 |
+
unset( $args['label']['desc'] );
|
| 86 |
+
unset( $args['label']['desc']['value'] );
|
| 87 |
+
}
|
| 88 |
+
$html .= $span;
|
| 89 |
}
|
| 90 |
if ( isset( $args['label']['desc'] ) ) {
|
| 91 |
$html .= '<div';
|
| 204 |
unset( $args['required_msg'] );
|
| 205 |
}
|
| 206 |
|
| 207 |
+
$html = '<div class="pirate-forms-file-upload-wrapper"><input type="file" ' . $this->get_common( $args, array( 'value' ) ) . ' tabindex="-1"></div>';
|
| 208 |
|
| 209 |
return $this->get_wrap( $args, $html );
|
| 210 |
}
|
includes/class-pirateforms-util.php
CHANGED
|
@@ -235,7 +235,7 @@ class PirateForms_Util {
|
|
| 235 |
/**
|
| 236 |
* The default email content.
|
| 237 |
*/
|
| 238 |
-
public static function get_default_email_content( $html = true, $id = null ) {
|
| 239 |
$body = array();
|
| 240 |
$body['heading'] = sprintf( __( 'Contact form submission from %s', 'pirate-forms' ), get_bloginfo( 'name' ) . ' (' . site_url() . ')' );
|
| 241 |
$body['body'] = array();
|
|
@@ -244,7 +244,7 @@ class PirateForms_Util {
|
|
| 244 |
$elements = array( 'name', 'email', 'subject', 'message' );
|
| 245 |
foreach ( $elements as $k ) {
|
| 246 |
$display = $pirate_forms_options[ 'pirateformsopt_' . $k . '_field' ];
|
| 247 |
-
if ( empty( $display ) ) {
|
| 248 |
continue;
|
| 249 |
}
|
| 250 |
$val = $pirate_forms_options[ 'pirateformsopt_label_' . $k ];
|
|
@@ -267,7 +267,7 @@ class PirateForms_Util {
|
|
| 267 |
}
|
| 268 |
// replace . and space with _ (PHP does not like dots in variable names so it automatically converts them to _).
|
| 269 |
$field = strtolower( str_replace( array( ' ', '.' ), '_', stripslashes( sanitize_text_field( $custom['label'] ) ) ) );
|
| 270 |
-
$body['body'][ stripslashes( $custom['label'] ) ] = self::MAGIC_TAG_PREFIX .
|
| 271 |
}
|
| 272 |
}
|
| 273 |
}
|
|
@@ -327,7 +327,9 @@ class PirateForms_Util {
|
|
| 327 |
public static function replace_magic_tags( $content, $body ) {
|
| 328 |
$html = $content;
|
| 329 |
foreach ( $body['magic_tags'] as $tag => $value ) {
|
| 330 |
-
$
|
|
|
|
|
|
|
| 331 |
}
|
| 332 |
|
| 333 |
$html = apply_filters( 'pirate_forms_replace_magic_tags', $html, $body['magic_tags'] );
|
| 235 |
/**
|
| 236 |
* The default email content.
|
| 237 |
*/
|
| 238 |
+
public static function get_default_email_content( $html = true, $id = null, $first_time = false ) {
|
| 239 |
$body = array();
|
| 240 |
$body['heading'] = sprintf( __( 'Contact form submission from %s', 'pirate-forms' ), get_bloginfo( 'name' ) . ' (' . site_url() . ')' );
|
| 241 |
$body['body'] = array();
|
| 244 |
$elements = array( 'name', 'email', 'subject', 'message' );
|
| 245 |
foreach ( $elements as $k ) {
|
| 246 |
$display = $pirate_forms_options[ 'pirateformsopt_' . $k . '_field' ];
|
| 247 |
+
if ( ! $first_time && empty( $display ) ) {
|
| 248 |
continue;
|
| 249 |
}
|
| 250 |
$val = $pirate_forms_options[ 'pirateformsopt_label_' . $k ];
|
| 267 |
}
|
| 268 |
// replace . and space with _ (PHP does not like dots in variable names so it automatically converts them to _).
|
| 269 |
$field = strtolower( str_replace( array( ' ', '.' ), '_', stripslashes( sanitize_text_field( $custom['label'] ) ) ) );
|
| 270 |
+
$body['body'][ stripslashes( $custom['label'] ) ] = self::MAGIC_TAG_PREFIX . $field . self::MAGIC_TAG_POSTFIX;
|
| 271 |
}
|
| 272 |
}
|
| 273 |
}
|
| 327 |
public static function replace_magic_tags( $content, $body ) {
|
| 328 |
$html = $content;
|
| 329 |
foreach ( $body['magic_tags'] as $tag => $value ) {
|
| 330 |
+
$from = htmlspecialchars( self::MAGIC_TAG_PREFIX . $tag . self::MAGIC_TAG_POSTFIX );
|
| 331 |
+
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, "replacing $from with $value", 'debug', __FILE__, __LINE__ );
|
| 332 |
+
$html = str_replace( $from, $value, $html );
|
| 333 |
}
|
| 334 |
|
| 335 |
$html = apply_filters( 'pirate_forms_replace_magic_tags', $html, $body['magic_tags'] );
|
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.3.
|
| 73 |
|
| 74 |
$this->load_dependencies();
|
| 75 |
$this->set_locale();
|
| 69 |
public function __construct() {
|
| 70 |
|
| 71 |
$this->plugin_name = 'pirateforms';
|
| 72 |
+
$this->version = '2.3.1';
|
| 73 |
|
| 74 |
$this->load_dependencies();
|
| 75 |
$this->set_locale();
|
languages/pirate-forms.pot
CHANGED
|
@@ -1 +1,684 @@
|
|
| 1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (C) 2017 Themeisle
|
| 2 |
+
# This file is distributed under the GPLv2.
|
| 3 |
+
msgid ""
|
| 4 |
+
msgstr ""
|
| 5 |
+
"Project-Id-Version: Free & Simple Contact Form Plugin - Pirateforms 2.3.0\n"
|
| 6 |
+
"Report-Msgid-Bugs-To: https://github.com/Codeinwp/pirate-forms/issues\n"
|
| 7 |
+
"POT-Creation-Date: 2017-12-28 13:28:25+00:00\n"
|
| 8 |
+
"MIME-Version: 1.0\n"
|
| 9 |
+
"Content-Type: text/plain; charset=utf-8\n"
|
| 10 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 11 |
+
"PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
|
| 12 |
+
"Last-Translator: Themeisle Translate Team <friends@themeisle.com>\n"
|
| 13 |
+
"Language-Team: Themeisle Translate <friends@themeisle.com>\n"
|
| 14 |
+
"X-Generator: grunt-wp-i18n 0.5.4\n"
|
| 15 |
+
"X-Poedit-KeywordsList: "
|
| 16 |
+
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
| 17 |
+
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
| 18 |
+
"Language: en\n"
|
| 19 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
| 20 |
+
"X-Poedit-Country: United States\n"
|
| 21 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
| 22 |
+
"X-Poedit-Basepath: ../\n"
|
| 23 |
+
"X-Poedit-SearchPath-0: .\n"
|
| 24 |
+
"X-Poedit-Bookmarks: \n"
|
| 25 |
+
"X-Textdomain-Support: yes\n"
|
| 26 |
+
|
| 27 |
+
#: admin/class-pirateforms-admin.php:76
|
| 28 |
+
msgid "Please specify the Site Key and Secret Key."
|
| 29 |
+
msgstr ""
|
| 30 |
+
|
| 31 |
+
#: admin/class-pirateforms-admin.php:123 admin/class-pirateforms-admin.php:147
|
| 32 |
+
msgid "Settings"
|
| 33 |
+
msgstr ""
|
| 34 |
+
|
| 35 |
+
#: admin/class-pirateforms-admin.php:154
|
| 36 |
+
msgid "More Features"
|
| 37 |
+
msgstr ""
|
| 38 |
+
|
| 39 |
+
#: admin/class-pirateforms-admin.php:189 admin/class-pirateforms-admin.php:203
|
| 40 |
+
msgid "Send Message"
|
| 41 |
+
msgstr ""
|
| 42 |
+
|
| 43 |
+
#: admin/class-pirateforms-admin.php:250
|
| 44 |
+
msgid "To use this option, please ensure Akismet is activated with a valid key."
|
| 45 |
+
msgstr ""
|
| 46 |
+
|
| 47 |
+
#: admin/class-pirateforms-admin.php:258
|
| 48 |
+
msgid "Form processing options"
|
| 49 |
+
msgstr ""
|
| 50 |
+
|
| 51 |
+
#: admin/class-pirateforms-admin.php:265
|
| 52 |
+
msgid "Contact notification email address"
|
| 53 |
+
msgstr ""
|
| 54 |
+
|
| 55 |
+
#: admin/class-pirateforms-admin.php:268
|
| 56 |
+
msgid "Insert [email] to use the contact form submitter's email."
|
| 57 |
+
msgstr ""
|
| 58 |
+
|
| 59 |
+
#: admin/class-pirateforms-admin.php:268
|
| 60 |
+
msgid ""
|
| 61 |
+
"The notification email will be sent from this address both to the "
|
| 62 |
+
"recipients below and the contact form submitter (if this is activated below "
|
| 63 |
+
"in email confirmation, in which case the domain for this email address "
|
| 64 |
+
"should match your site's domain)."
|
| 65 |
+
msgstr ""
|
| 66 |
+
|
| 67 |
+
#: admin/class-pirateforms-admin.php:284
|
| 68 |
+
msgid "Contact submission recipients"
|
| 69 |
+
msgstr ""
|
| 70 |
+
|
| 71 |
+
#: admin/class-pirateforms-admin.php:287
|
| 72 |
+
msgid ""
|
| 73 |
+
"Email address(es) to receive contact submission notifications. You can "
|
| 74 |
+
"separate multiple emails with a comma."
|
| 75 |
+
msgstr ""
|
| 76 |
+
|
| 77 |
+
#: admin/class-pirateforms-admin.php:303
|
| 78 |
+
msgid "Store submissions in the database"
|
| 79 |
+
msgstr ""
|
| 80 |
+
|
| 81 |
+
#: admin/class-pirateforms-admin.php:306
|
| 82 |
+
msgid ""
|
| 83 |
+
"Should the submissions be stored in the admin area? If chosen, contact form "
|
| 84 |
+
"submissions will be saved under \"All Entries\" on the left (appears after "
|
| 85 |
+
"this option is activated)."
|
| 86 |
+
msgstr ""
|
| 87 |
+
|
| 88 |
+
#: admin/class-pirateforms-admin.php:316 admin/class-pirateforms-admin.php:335
|
| 89 |
+
#: admin/class-pirateforms-admin.php:391 admin/class-pirateforms-admin.php:750
|
| 90 |
+
#: admin/class-pirateforms-admin.php:793
|
| 91 |
+
msgid "Yes"
|
| 92 |
+
msgstr ""
|
| 93 |
+
|
| 94 |
+
#: admin/class-pirateforms-admin.php:322
|
| 95 |
+
msgid "Add a nonce to the contact form:"
|
| 96 |
+
msgstr ""
|
| 97 |
+
|
| 98 |
+
#: admin/class-pirateforms-admin.php:325
|
| 99 |
+
msgid ""
|
| 100 |
+
"Should the form use a WordPress nonce? This helps reduce spam by ensuring "
|
| 101 |
+
"that the form submittor is on the site when submitting the form rather than "
|
| 102 |
+
"submitting remotely. This could, however, cause problems with sites using a "
|
| 103 |
+
"page caching plugin. Turn this off if you are getting complaints about "
|
| 104 |
+
"forms not being able to be submitted with an error of \"Nonce failed!\""
|
| 105 |
+
msgstr ""
|
| 106 |
+
|
| 107 |
+
#: admin/class-pirateforms-admin.php:341
|
| 108 |
+
msgid "Send email confirmation to form submitter"
|
| 109 |
+
msgstr ""
|
| 110 |
+
|
| 111 |
+
#: admin/class-pirateforms-admin.php:344
|
| 112 |
+
msgid ""
|
| 113 |
+
"Adding text here will send an email to the form submitter. The email uses "
|
| 114 |
+
"the \"Successful form submission text\" field from the \"Alert Messages\" "
|
| 115 |
+
"tab as the subject line. Plain text only here, no HTML."
|
| 116 |
+
msgstr ""
|
| 117 |
+
|
| 118 |
+
#: admin/class-pirateforms-admin.php:360
|
| 119 |
+
msgid "Success Page"
|
| 120 |
+
msgstr ""
|
| 121 |
+
|
| 122 |
+
#: admin/class-pirateforms-admin.php:363
|
| 123 |
+
msgid ""
|
| 124 |
+
"Select the page that displays after a successful form submission. The page "
|
| 125 |
+
"will be displayed without pausing on the email form, so please be sure to "
|
| 126 |
+
"configure a relevant thank you message in this page."
|
| 127 |
+
msgstr ""
|
| 128 |
+
|
| 129 |
+
#: admin/class-pirateforms-admin.php:378
|
| 130 |
+
msgid "Integrate with Akismet?"
|
| 131 |
+
msgstr ""
|
| 132 |
+
|
| 133 |
+
#: admin/class-pirateforms-admin.php:381
|
| 134 |
+
msgid ""
|
| 135 |
+
"Checking this option will verify the content of the message with Akismet to "
|
| 136 |
+
"check if it's spam. If it is determined to be spam, the message will be "
|
| 137 |
+
"blocked. %s"
|
| 138 |
+
msgstr ""
|
| 139 |
+
|
| 140 |
+
#: admin/class-pirateforms-admin.php:399
|
| 141 |
+
#: admin/partials/pirateforms-settings-display.php:31
|
| 142 |
+
msgid "Fields Settings"
|
| 143 |
+
msgstr ""
|
| 144 |
+
|
| 145 |
+
#: admin/class-pirateforms-admin.php:407 admin/class-pirateforms-admin.php:557
|
| 146 |
+
msgid "Name"
|
| 147 |
+
msgstr ""
|
| 148 |
+
|
| 149 |
+
#: admin/class-pirateforms-admin.php:416 admin/class-pirateforms-admin.php:435
|
| 150 |
+
#: admin/class-pirateforms-admin.php:454 admin/class-pirateforms-admin.php:473
|
| 151 |
+
#: admin/class-pirateforms-admin.php:491
|
| 152 |
+
msgid "Do not display"
|
| 153 |
+
msgstr ""
|
| 154 |
+
|
| 155 |
+
#: admin/class-pirateforms-admin.php:417 admin/class-pirateforms-admin.php:436
|
| 156 |
+
#: admin/class-pirateforms-admin.php:455 admin/class-pirateforms-admin.php:474
|
| 157 |
+
#: admin/class-pirateforms-admin.php:492
|
| 158 |
+
msgid "Display but not required"
|
| 159 |
+
msgstr ""
|
| 160 |
+
|
| 161 |
+
#: admin/class-pirateforms-admin.php:418 admin/class-pirateforms-admin.php:437
|
| 162 |
+
#: admin/class-pirateforms-admin.php:456 admin/class-pirateforms-admin.php:475
|
| 163 |
+
#: admin/class-pirateforms-admin.php:493
|
| 164 |
+
msgid "Required"
|
| 165 |
+
msgstr ""
|
| 166 |
+
|
| 167 |
+
#: admin/class-pirateforms-admin.php:426
|
| 168 |
+
msgid "Email address"
|
| 169 |
+
msgstr ""
|
| 170 |
+
|
| 171 |
+
#: admin/class-pirateforms-admin.php:445 admin/class-pirateforms-admin.php:583
|
| 172 |
+
#: admin/class-pirateforms-admin.php:585
|
| 173 |
+
msgid "Subject"
|
| 174 |
+
msgstr ""
|
| 175 |
+
|
| 176 |
+
#: admin/class-pirateforms-admin.php:464 admin/class-pirateforms-admin.php:596
|
| 177 |
+
msgid "Message"
|
| 178 |
+
msgstr ""
|
| 179 |
+
|
| 180 |
+
#: admin/class-pirateforms-admin.php:483
|
| 181 |
+
#: public/class-pirateforms-public.php:993
|
| 182 |
+
msgid "Attachment"
|
| 183 |
+
msgstr ""
|
| 184 |
+
|
| 185 |
+
#: admin/class-pirateforms-admin.php:501
|
| 186 |
+
msgid "Add a spam trap"
|
| 187 |
+
msgstr ""
|
| 188 |
+
|
| 189 |
+
#: admin/class-pirateforms-admin.php:510 admin/class-pirateforms-admin.php:812
|
| 190 |
+
msgid "No"
|
| 191 |
+
msgstr ""
|
| 192 |
+
|
| 193 |
+
#: admin/class-pirateforms-admin.php:511
|
| 194 |
+
msgid "Custom"
|
| 195 |
+
msgstr ""
|
| 196 |
+
|
| 197 |
+
#: admin/class-pirateforms-admin.php:512
|
| 198 |
+
msgid "Google reCAPTCHA"
|
| 199 |
+
msgstr ""
|
| 200 |
+
|
| 201 |
+
#: admin/class-pirateforms-admin.php:520
|
| 202 |
+
msgid "Site key"
|
| 203 |
+
msgstr ""
|
| 204 |
+
|
| 205 |
+
#: admin/class-pirateforms-admin.php:523
|
| 206 |
+
msgid "Create an account here "
|
| 207 |
+
msgstr ""
|
| 208 |
+
|
| 209 |
+
#: admin/class-pirateforms-admin.php:523
|
| 210 |
+
msgid "to get the Site key and the Secret key for the reCaptcha."
|
| 211 |
+
msgstr ""
|
| 212 |
+
|
| 213 |
+
#: admin/class-pirateforms-admin.php:538
|
| 214 |
+
msgid "Secret key"
|
| 215 |
+
msgstr ""
|
| 216 |
+
|
| 217 |
+
#: admin/class-pirateforms-admin.php:550
|
| 218 |
+
#: admin/partials/pirateforms-settings-display.php:34
|
| 219 |
+
msgid "Fields Labels"
|
| 220 |
+
msgstr ""
|
| 221 |
+
|
| 222 |
+
#: admin/class-pirateforms-admin.php:559
|
| 223 |
+
msgid "Your Name"
|
| 224 |
+
msgstr ""
|
| 225 |
+
|
| 226 |
+
#: admin/class-pirateforms-admin.php:570
|
| 227 |
+
msgid "Email"
|
| 228 |
+
msgstr ""
|
| 229 |
+
|
| 230 |
+
#: admin/class-pirateforms-admin.php:572
|
| 231 |
+
msgid "Your Email"
|
| 232 |
+
msgstr ""
|
| 233 |
+
|
| 234 |
+
#: admin/class-pirateforms-admin.php:598
|
| 235 |
+
msgid "Your message"
|
| 236 |
+
msgstr ""
|
| 237 |
+
|
| 238 |
+
#: admin/class-pirateforms-admin.php:609
|
| 239 |
+
msgid "Submit button"
|
| 240 |
+
msgstr ""
|
| 241 |
+
|
| 242 |
+
#: admin/class-pirateforms-admin.php:622
|
| 243 |
+
msgid "Email content"
|
| 244 |
+
msgstr ""
|
| 245 |
+
|
| 246 |
+
#: admin/class-pirateforms-admin.php:623
|
| 247 |
+
msgid "You can use the next magic tags:"
|
| 248 |
+
msgstr ""
|
| 249 |
+
|
| 250 |
+
#: admin/class-pirateforms-admin.php:641
|
| 251 |
+
#: admin/partials/pirateforms-settings-display.php:37
|
| 252 |
+
msgid "Alert Messages"
|
| 253 |
+
msgstr ""
|
| 254 |
+
|
| 255 |
+
#: admin/class-pirateforms-admin.php:648
|
| 256 |
+
msgid "Name required and missing"
|
| 257 |
+
msgstr ""
|
| 258 |
+
|
| 259 |
+
#: admin/class-pirateforms-admin.php:650
|
| 260 |
+
msgid "Enter your name"
|
| 261 |
+
msgstr ""
|
| 262 |
+
|
| 263 |
+
#: admin/class-pirateforms-admin.php:661
|
| 264 |
+
msgid "E-mail required and missing"
|
| 265 |
+
msgstr ""
|
| 266 |
+
|
| 267 |
+
#: admin/class-pirateforms-admin.php:663
|
| 268 |
+
msgid "Enter valid email"
|
| 269 |
+
msgstr ""
|
| 270 |
+
|
| 271 |
+
#: admin/class-pirateforms-admin.php:674
|
| 272 |
+
msgid "Subject required and missing"
|
| 273 |
+
msgstr ""
|
| 274 |
+
|
| 275 |
+
#: admin/class-pirateforms-admin.php:676
|
| 276 |
+
msgid "Please enter a subject"
|
| 277 |
+
msgstr ""
|
| 278 |
+
|
| 279 |
+
#: admin/class-pirateforms-admin.php:687
|
| 280 |
+
msgid "Question/comment is missing"
|
| 281 |
+
msgstr ""
|
| 282 |
+
|
| 283 |
+
#: admin/class-pirateforms-admin.php:689
|
| 284 |
+
msgid "Enter your question or comment"
|
| 285 |
+
msgstr ""
|
| 286 |
+
|
| 287 |
+
#: admin/class-pirateforms-admin.php:700
|
| 288 |
+
msgid "Attachment is missing"
|
| 289 |
+
msgstr ""
|
| 290 |
+
|
| 291 |
+
#: admin/class-pirateforms-admin.php:702
|
| 292 |
+
msgid "Please add an attachment"
|
| 293 |
+
msgstr ""
|
| 294 |
+
|
| 295 |
+
#: admin/class-pirateforms-admin.php:713
|
| 296 |
+
msgid "Successful form submission text"
|
| 297 |
+
msgstr ""
|
| 298 |
+
|
| 299 |
+
#: admin/class-pirateforms-admin.php:716
|
| 300 |
+
msgid ""
|
| 301 |
+
"This text is used on the page if no Success Page is chosen above. This is "
|
| 302 |
+
"also used as the confirmation email title, if one is set to send out."
|
| 303 |
+
msgstr ""
|
| 304 |
+
|
| 305 |
+
#: admin/class-pirateforms-admin.php:720
|
| 306 |
+
msgid "Thanks, your email was sent successfully!"
|
| 307 |
+
msgstr ""
|
| 308 |
+
|
| 309 |
+
#: admin/class-pirateforms-admin.php:731
|
| 310 |
+
msgid "SMTP Options"
|
| 311 |
+
msgstr ""
|
| 312 |
+
|
| 313 |
+
#: admin/class-pirateforms-admin.php:738
|
| 314 |
+
msgid "Use SMTP to send emails?"
|
| 315 |
+
msgstr ""
|
| 316 |
+
|
| 317 |
+
#: admin/class-pirateforms-admin.php:741
|
| 318 |
+
msgid "Instead of PHP mail function"
|
| 319 |
+
msgstr ""
|
| 320 |
+
|
| 321 |
+
#: admin/class-pirateforms-admin.php:756
|
| 322 |
+
msgid "SMTP Host"
|
| 323 |
+
msgstr ""
|
| 324 |
+
|
| 325 |
+
#: admin/class-pirateforms-admin.php:768
|
| 326 |
+
msgid "SMTP Port"
|
| 327 |
+
msgstr ""
|
| 328 |
+
|
| 329 |
+
#: admin/class-pirateforms-admin.php:780
|
| 330 |
+
msgid "Use SMTP Authentication?"
|
| 331 |
+
msgstr ""
|
| 332 |
+
|
| 333 |
+
#: admin/class-pirateforms-admin.php:783 admin/class-pirateforms-admin.php:802
|
| 334 |
+
msgid ""
|
| 335 |
+
"If you check this box, make sure the SMTP Username and SMTP Password are "
|
| 336 |
+
"completed."
|
| 337 |
+
msgstr ""
|
| 338 |
+
|
| 339 |
+
#: admin/class-pirateforms-admin.php:799
|
| 340 |
+
msgid "Security?"
|
| 341 |
+
msgstr ""
|
| 342 |
+
|
| 343 |
+
#: admin/class-pirateforms-admin.php:813
|
| 344 |
+
msgid "SSL"
|
| 345 |
+
msgstr ""
|
| 346 |
+
|
| 347 |
+
#: admin/class-pirateforms-admin.php:814
|
| 348 |
+
msgid "TLS"
|
| 349 |
+
msgstr ""
|
| 350 |
+
|
| 351 |
+
#: admin/class-pirateforms-admin.php:821
|
| 352 |
+
msgid "SMTP Username"
|
| 353 |
+
msgstr ""
|
| 354 |
+
|
| 355 |
+
#: admin/class-pirateforms-admin.php:833
|
| 356 |
+
msgid "SMTP Password"
|
| 357 |
+
msgstr ""
|
| 358 |
+
|
| 359 |
+
#: admin/class-pirateforms-admin.php:946
|
| 360 |
+
msgid "Mail Status"
|
| 361 |
+
msgstr ""
|
| 362 |
+
|
| 363 |
+
#: admin/class-pirateforms-admin.php:969
|
| 364 |
+
msgid "Status not captured"
|
| 365 |
+
msgstr ""
|
| 366 |
+
|
| 367 |
+
#: admin/class-pirateforms-admin.php:969
|
| 368 |
+
msgid "Mail sending failed!"
|
| 369 |
+
msgstr ""
|
| 370 |
+
|
| 371 |
+
#: admin/class-pirateforms-admin.php:969
|
| 372 |
+
msgid "Mail sent successfully!"
|
| 373 |
+
msgstr ""
|
| 374 |
+
|
| 375 |
+
#: admin/class-pirateforms-admin.php:1019
|
| 376 |
+
msgid "Sent email successfully!"
|
| 377 |
+
msgstr ""
|
| 378 |
+
|
| 379 |
+
#: admin/class-pirateforms-admin.php:1019
|
| 380 |
+
msgid "Sent email failed!"
|
| 381 |
+
msgstr ""
|
| 382 |
+
|
| 383 |
+
#: admin/partials/pirateforms-settings-display.php:20
|
| 384 |
+
#: includes/class-pirateforms-widget.php:18
|
| 385 |
+
#: includes/class-pirateforms-widget.php:21
|
| 386 |
+
msgid "Pirate Forms"
|
| 387 |
+
msgstr ""
|
| 388 |
+
|
| 389 |
+
#: admin/partials/pirateforms-settings-display.php:25
|
| 390 |
+
msgid "How to use"
|
| 391 |
+
msgstr ""
|
| 392 |
+
|
| 393 |
+
#: admin/partials/pirateforms-settings-display.php:28
|
| 394 |
+
msgid "Options"
|
| 395 |
+
msgstr ""
|
| 396 |
+
|
| 397 |
+
#: admin/partials/pirateforms-settings-display.php:40
|
| 398 |
+
msgid "SMTP"
|
| 399 |
+
msgstr ""
|
| 400 |
+
|
| 401 |
+
#: admin/partials/pirateforms-settings-display.php:47
|
| 402 |
+
msgid "Welcome to Pirate Forms!"
|
| 403 |
+
msgstr ""
|
| 404 |
+
|
| 405 |
+
#: admin/partials/pirateforms-settings-display.php:48
|
| 406 |
+
msgid "To get started, just "
|
| 407 |
+
msgstr ""
|
| 408 |
+
|
| 409 |
+
#: admin/partials/pirateforms-settings-display.php:49
|
| 410 |
+
msgid "configure all the options "
|
| 411 |
+
msgstr ""
|
| 412 |
+
|
| 413 |
+
#: admin/partials/pirateforms-settings-display.php:49
|
| 414 |
+
msgid "you need, hit save and start using the created form."
|
| 415 |
+
msgstr ""
|
| 416 |
+
|
| 417 |
+
#: admin/partials/pirateforms-settings-display.php:54
|
| 418 |
+
msgid "There are 3 ways of using the newly created form:"
|
| 419 |
+
msgstr ""
|
| 420 |
+
|
| 421 |
+
#: admin/partials/pirateforms-settings-display.php:56
|
| 422 |
+
msgid "Add a "
|
| 423 |
+
msgstr ""
|
| 424 |
+
|
| 425 |
+
#: admin/partials/pirateforms-settings-display.php:57
|
| 426 |
+
msgid "widget"
|
| 427 |
+
msgstr ""
|
| 428 |
+
|
| 429 |
+
#: admin/partials/pirateforms-settings-display.php:59
|
| 430 |
+
#: admin/partials/pirateforms-settings-display.php:62
|
| 431 |
+
msgid "Use the shortcode "
|
| 432 |
+
msgstr ""
|
| 433 |
+
|
| 434 |
+
#: admin/partials/pirateforms-settings-display.php:60
|
| 435 |
+
msgid " in any page or post."
|
| 436 |
+
msgstr ""
|
| 437 |
+
|
| 438 |
+
#: admin/partials/pirateforms-settings-display.php:64
|
| 439 |
+
msgid " in the theme's files."
|
| 440 |
+
msgstr ""
|
| 441 |
+
|
| 442 |
+
#: admin/partials/pirateforms-settings-display.php:71
|
| 443 |
+
msgid ""
|
| 444 |
+
"If you are using the default (non-SMTP) configuration which uses the WP/PHP "
|
| 445 |
+
"mail, mails might either land in the spam/junk folders or they might get "
|
| 446 |
+
"lost. So, you might not receive the email even if the status against an "
|
| 447 |
+
"entry reads the mail has been sent successfully. If you face this, please "
|
| 448 |
+
"contact your system administrator. If you continue to face this problem, "
|
| 449 |
+
"you can switch to the SMTP configuration to ensure email deliverability."
|
| 450 |
+
msgstr ""
|
| 451 |
+
|
| 452 |
+
#: admin/partials/pirateforms-settings-display.php:76
|
| 453 |
+
msgid "Are you enjoying Pirate Forms?"
|
| 454 |
+
msgstr ""
|
| 455 |
+
|
| 456 |
+
#: admin/partials/pirateforms-settings-display.php:81
|
| 457 |
+
#. translators: link to WordPress.org repo for PirateForms
|
| 458 |
+
msgid "Rate our plugin on %1$s WordPress.org %2$s. We'd really appreciate it!"
|
| 459 |
+
msgstr ""
|
| 460 |
+
|
| 461 |
+
#: admin/partials/pirateforms-settings-display.php:95
|
| 462 |
+
#. translators: link to blog article about contact form plugins
|
| 463 |
+
msgid ""
|
| 464 |
+
"If you want a more complex Contact Form Plugin please check %1$s this link "
|
| 465 |
+
"%2$s."
|
| 466 |
+
msgstr ""
|
| 467 |
+
|
| 468 |
+
#: admin/partials/pirateforms-settings-display.php:129
|
| 469 |
+
msgid "Save changes"
|
| 470 |
+
msgstr ""
|
| 471 |
+
|
| 472 |
+
#: admin/partials/pirateforms-settings-display.php:138
|
| 473 |
+
msgid "Send Test Email"
|
| 474 |
+
msgstr ""
|
| 475 |
+
|
| 476 |
+
#: admin/partials/pirateforms-settings-sidebar-subscribe.php:5
|
| 477 |
+
msgid "Extend to FULL version"
|
| 478 |
+
msgstr ""
|
| 479 |
+
|
| 480 |
+
#: admin/partials/pirateforms-settings-sidebar-subscribe.php:18
|
| 481 |
+
#: admin/partials/pirateforms-settings-sidebar-subscribe.php:19
|
| 482 |
+
msgid "View more features"
|
| 483 |
+
msgstr ""
|
| 484 |
+
|
| 485 |
+
#: admin/partials/pirateforms-settings-sidebar-subscribe.php:25
|
| 486 |
+
msgid "Get Our Free Email Course"
|
| 487 |
+
msgstr ""
|
| 488 |
+
|
| 489 |
+
#: admin/partials/pirateforms-settings-sidebar-subscribe.php:49
|
| 490 |
+
msgid ""
|
| 491 |
+
"Ready to learn how to reduce your website loading times by half? Come and "
|
| 492 |
+
"join the 1st lesson here!"
|
| 493 |
+
msgstr ""
|
| 494 |
+
|
| 495 |
+
#: admin/partials/pirateforms-settings-sidebar-subscribe.php:51
|
| 496 |
+
msgid ""
|
| 497 |
+
"Thank you for subscribing! You have been added to the mailing list and will "
|
| 498 |
+
"receive the next email information in the coming weeks. If you ever wish to "
|
| 499 |
+
"unsubscribe, simply use the \"Unsubscribe\" link included in each "
|
| 500 |
+
"newsletter."
|
| 501 |
+
msgstr ""
|
| 502 |
+
|
| 503 |
+
#: includes/class-pirateforms-html.php:190
|
| 504 |
+
msgid "Upload file"
|
| 505 |
+
msgstr ""
|
| 506 |
+
|
| 507 |
+
#: includes/class-pirateforms-util.php:153
|
| 508 |
+
msgid "Form submission blocked!"
|
| 509 |
+
msgstr ""
|
| 510 |
+
|
| 511 |
+
#: includes/class-pirateforms-util.php:169
|
| 512 |
+
msgid "None"
|
| 513 |
+
msgstr ""
|
| 514 |
+
|
| 515 |
+
#: includes/class-pirateforms-util.php:240
|
| 516 |
+
#: public/class-pirateforms-public.php:547
|
| 517 |
+
msgid "Contact form submission from %s"
|
| 518 |
+
msgstr ""
|
| 519 |
+
|
| 520 |
+
#: includes/class-pirateforms-util.php:256
|
| 521 |
+
#: includes/class-pirateforms-util.php:298
|
| 522 |
+
#: public/class-pirateforms-public.php:574
|
| 523 |
+
msgid "IP address"
|
| 524 |
+
msgstr ""
|
| 525 |
+
|
| 526 |
+
#: includes/class-pirateforms-util.php:257
|
| 527 |
+
#: public/class-pirateforms-public.php:575
|
| 528 |
+
msgid "IP search"
|
| 529 |
+
msgstr ""
|
| 530 |
+
|
| 531 |
+
#: includes/class-pirateforms-util.php:258
|
| 532 |
+
#: includes/class-pirateforms-util.php:299
|
| 533 |
+
#: public/class-pirateforms-public.php:582
|
| 534 |
+
msgid "Came from"
|
| 535 |
+
msgstr ""
|
| 536 |
+
|
| 537 |
+
#: includes/class-pirateforms-util.php:259
|
| 538 |
+
#: includes/class-pirateforms-util.php:300
|
| 539 |
+
#: public/class-pirateforms-public.php:588
|
| 540 |
+
msgid "Sent from page"
|
| 541 |
+
msgstr ""
|
| 542 |
+
|
| 543 |
+
#: includes/class-pirateforms-widget.php:97
|
| 544 |
+
msgid "Title"
|
| 545 |
+
msgstr ""
|
| 546 |
+
|
| 547 |
+
#: includes/class-pirateforms-widget.php:98
|
| 548 |
+
msgid "Text above form"
|
| 549 |
+
msgstr ""
|
| 550 |
+
|
| 551 |
+
#: includes/class-pirateforms-widget.php:101
|
| 552 |
+
msgid "Title:"
|
| 553 |
+
msgstr ""
|
| 554 |
+
|
| 555 |
+
#: includes/class-pirateforms-widget.php:107
|
| 556 |
+
msgid "Subtext:"
|
| 557 |
+
msgstr ""
|
| 558 |
+
|
| 559 |
+
#: includes/class-pirateforms-widget.php:112
|
| 560 |
+
msgid ""
|
| 561 |
+
"Need more forms ? Check our <a href=\"%s\" target=\"_blank\">extended</a> "
|
| 562 |
+
"version for more features"
|
| 563 |
+
msgstr ""
|
| 564 |
+
|
| 565 |
+
#: includes/class-pirateforms.php:251
|
| 566 |
+
msgid "Edit Entry"
|
| 567 |
+
msgstr ""
|
| 568 |
+
|
| 569 |
+
#: includes/class-pirateforms.php:252
|
| 570 |
+
msgid "View Entry"
|
| 571 |
+
msgstr ""
|
| 572 |
+
|
| 573 |
+
#: includes/class-pirateforms.php:253
|
| 574 |
+
msgid "All Entries"
|
| 575 |
+
msgstr ""
|
| 576 |
+
|
| 577 |
+
#: includes/class-pirateforms.php:254
|
| 578 |
+
msgid "Search Entries"
|
| 579 |
+
msgstr ""
|
| 580 |
+
|
| 581 |
+
#: includes/class-pirateforms.php:255
|
| 582 |
+
msgid "Parent Entries:"
|
| 583 |
+
msgstr ""
|
| 584 |
+
|
| 585 |
+
#: includes/class-pirateforms.php:256
|
| 586 |
+
msgid "No entries found."
|
| 587 |
+
msgstr ""
|
| 588 |
+
|
| 589 |
+
#: includes/class-pirateforms.php:257
|
| 590 |
+
msgid "No entries found in Trash."
|
| 591 |
+
msgstr ""
|
| 592 |
+
|
| 593 |
+
#: includes/class-pirateforms.php:261
|
| 594 |
+
msgid "Entries from Pirate Forms"
|
| 595 |
+
msgstr ""
|
| 596 |
+
|
| 597 |
+
#: public/class-pirateforms-public.php:104
|
| 598 |
+
msgid "I'm human!"
|
| 599 |
+
msgstr ""
|
| 600 |
+
|
| 601 |
+
#: public/class-pirateforms-public.php:362
|
| 602 |
+
msgid "Submit"
|
| 603 |
+
msgstr ""
|
| 604 |
+
|
| 605 |
+
#: public/class-pirateforms-public.php:464
|
| 606 |
+
msgid "Sorry, an error occured."
|
| 607 |
+
msgstr ""
|
| 608 |
+
|
| 609 |
+
#: public/class-pirateforms-public.php:526
|
| 610 |
+
msgid "Nonce failed!"
|
| 611 |
+
msgstr ""
|
| 612 |
+
|
| 613 |
+
#: public/class-pirateforms-public.php:534
|
| 614 |
+
#: public/class-pirateforms-public.php:599
|
| 615 |
+
msgid "Form submission failed!"
|
| 616 |
+
msgstr ""
|
| 617 |
+
|
| 618 |
+
#: public/class-pirateforms-public.php:559
|
| 619 |
+
msgid "Please enter one or more Contact submission recipients"
|
| 620 |
+
msgstr ""
|
| 621 |
+
|
| 622 |
+
#: public/class-pirateforms-public.php:805
|
| 623 |
+
msgid "Invalid CAPTCHA"
|
| 624 |
+
msgstr ""
|
| 625 |
+
|
| 626 |
+
#: public/class-pirateforms-public.php:817
|
| 627 |
+
msgid "Incorrect CAPTCHA"
|
| 628 |
+
msgstr ""
|
| 629 |
+
|
| 630 |
+
#: public/class-pirateforms-public.php:826
|
| 631 |
+
msgid "Submission blocked!"
|
| 632 |
+
msgstr ""
|
| 633 |
+
|
| 634 |
+
#: public/class-pirateforms-public.php:955
|
| 635 |
+
msgid "Uploaded file type is not allowed for %s"
|
| 636 |
+
msgstr ""
|
| 637 |
+
|
| 638 |
+
#: public/class-pirateforms-public.php:963
|
| 639 |
+
msgid "Uploaded file is too large %s"
|
| 640 |
+
msgstr ""
|
| 641 |
+
|
| 642 |
+
#: public/class-pirateforms-public.php:977
|
| 643 |
+
msgid "There was an unknown error uploading the file %s"
|
| 644 |
+
msgstr ""
|
| 645 |
+
|
| 646 |
+
#. Plugin Name of the plugin/theme
|
| 647 |
+
msgid "Free & Simple Contact Form Plugin - Pirateforms"
|
| 648 |
+
msgstr ""
|
| 649 |
+
|
| 650 |
+
#. Plugin URI of the plugin/theme
|
| 651 |
+
msgid "http://themeisle.com/plugins/pirate-forms/"
|
| 652 |
+
msgstr ""
|
| 653 |
+
|
| 654 |
+
#. Description of the plugin/theme
|
| 655 |
+
msgid "Easily creates a nice looking, simple contact form on your WP site."
|
| 656 |
+
msgstr ""
|
| 657 |
+
|
| 658 |
+
#. Author of the plugin/theme
|
| 659 |
+
msgid "Themeisle"
|
| 660 |
+
msgstr ""
|
| 661 |
+
|
| 662 |
+
#. Author URI of the plugin/theme
|
| 663 |
+
msgid "http://themeisle.com"
|
| 664 |
+
msgstr ""
|
| 665 |
+
|
| 666 |
+
#: includes/class-pirateforms.php:247
|
| 667 |
+
msgctxt "post type general name"
|
| 668 |
+
msgid "Entries"
|
| 669 |
+
msgstr ""
|
| 670 |
+
|
| 671 |
+
#: includes/class-pirateforms.php:248
|
| 672 |
+
msgctxt "post type singular name"
|
| 673 |
+
msgid "Entry"
|
| 674 |
+
msgstr ""
|
| 675 |
+
|
| 676 |
+
#: includes/class-pirateforms.php:249
|
| 677 |
+
msgctxt "admin menu"
|
| 678 |
+
msgid "Entries"
|
| 679 |
+
msgstr ""
|
| 680 |
+
|
| 681 |
+
#: includes/class-pirateforms.php:250
|
| 682 |
+
msgctxt "add new on admin bar"
|
| 683 |
+
msgid "Entry"
|
| 684 |
+
msgstr ""
|
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.3.
|
| 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.3.
|
| 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.3.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.3.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
|
@@ -193,7 +193,7 @@ class PirateForms_Public {
|
|
| 193 |
if ( ! empty( $field ) && ! empty( $label ) ) :
|
| 194 |
$required = $field === 'req' ? true : false;
|
| 195 |
$wrap_classes = array(
|
| 196 |
-
( ! empty( $subjectField ) ? 'col-xs-12 col-sm-
|
| 197 |
);
|
| 198 |
// If this field was submitted with invalid data
|
| 199 |
if ( isset( $_SESSION[ $error_key ]['contact-name'] ) ) {
|
|
@@ -222,7 +222,7 @@ class PirateForms_Public {
|
|
| 222 |
if ( ! empty( $field ) && ! empty( $label ) ) :
|
| 223 |
$required = $field === 'req' ? true : false;
|
| 224 |
$wrap_classes = array(
|
| 225 |
-
( ! empty( $subjectField ) ? 'col-xs-12 col-sm-
|
| 226 |
);
|
| 227 |
// If this field was submitted with invalid data
|
| 228 |
if ( isset( $_SESSION[ $error_key ]['contact-email'] ) ) {
|
|
@@ -251,7 +251,7 @@ class PirateForms_Public {
|
|
| 251 |
if ( ! empty( $field ) && ! empty( $label ) ) :
|
| 252 |
$required = $field === 'req' ? true : false;
|
| 253 |
$wrap_classes = array(
|
| 254 |
-
'col-xs-12
|
| 255 |
);
|
| 256 |
// If this field was submitted with invalid data
|
| 257 |
if ( isset( $_SESSION[ $error_key ]['contact-subject'] ) ) {
|
|
@@ -335,7 +335,7 @@ class PirateForms_Public {
|
|
| 335 |
'id' => 'pirate-forms-captcha',
|
| 336 |
'wrap' => array(
|
| 337 |
'type' => 'div',
|
| 338 |
-
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_captcha', array( 'col-xs-12 col-sm-6 form_field_wrap form_captcha_wrap' ) ) ),
|
| 339 |
),
|
| 340 |
);
|
| 341 |
endif;
|
|
@@ -367,7 +367,7 @@ class PirateForms_Public {
|
|
| 367 |
'class' => 'pirate-forms-submit-button btn btn-primary',
|
| 368 |
'wrap' => array(
|
| 369 |
'type' => 'div',
|
| 370 |
-
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_submit', array( 'col-xs-12 col-sm-6 form_field_wrap contact_submit_wrap' ) ) ),
|
| 371 |
),
|
| 372 |
'value' => $pirateformsopt_label_submit_btn,
|
| 373 |
);
|
|
@@ -415,7 +415,7 @@ class PirateForms_Public {
|
|
| 415 |
* @param PirateForms_PhpFormBuilder $form_builder The form builder object.
|
| 416 |
*/
|
| 417 |
public function render_fields( $form_builder ) {
|
| 418 |
-
echo '<div class="pirate_forms_three_inputs_wrap">';
|
| 419 |
|
| 420 |
if ( isset( $form_builder->contact_name ) ) {
|
| 421 |
echo $form_builder->contact_name;
|
|
@@ -448,6 +448,8 @@ class PirateForms_Public {
|
|
| 448 |
}
|
| 449 |
|
| 450 |
echo $form_builder->contact_submit;
|
|
|
|
|
|
|
| 451 |
}
|
| 452 |
|
| 453 |
/**
|
|
@@ -644,7 +646,7 @@ class PirateForms_Public {
|
|
| 644 |
$subject = $pirate_forms_contact_subject;
|
| 645 |
}
|
| 646 |
|
| 647 |
-
$mail_body = ! empty( $pirate_forms_options['pirateformsopt_email_content'] ) ? $pirate_forms_options['pirateformsopt_email_content'] : PirateForms_Util::get_default_email_content( true, $form_id );
|
| 648 |
$mail_body = PirateForms_Util::replace_magic_tags( $mail_body, $body );
|
| 649 |
|
| 650 |
do_action( 'pirate_forms_before_sending', $pirate_forms_contact_email, $site_recipients, $subject, $mail_body, $headers, $attachments );
|
| 193 |
if ( ! empty( $field ) && ! empty( $label ) ) :
|
| 194 |
$required = $field === 'req' ? true : false;
|
| 195 |
$wrap_classes = array(
|
| 196 |
+
( ! empty( $subjectField ) ? 'col-xs-12 col-sm-6' : 'col-xs-12' ) . ' contact_name_wrap pirate_forms_three_inputs form_field_wrap',
|
| 197 |
);
|
| 198 |
// If this field was submitted with invalid data
|
| 199 |
if ( isset( $_SESSION[ $error_key ]['contact-name'] ) ) {
|
| 222 |
if ( ! empty( $field ) && ! empty( $label ) ) :
|
| 223 |
$required = $field === 'req' ? true : false;
|
| 224 |
$wrap_classes = array(
|
| 225 |
+
( ! empty( $subjectField ) ? 'col-xs-12 col-sm-6' : 'col-xs-12' ) . ' contact_email_wrap pirate_forms_three_inputs form_field_wrap',
|
| 226 |
);
|
| 227 |
// If this field was submitted with invalid data
|
| 228 |
if ( isset( $_SESSION[ $error_key ]['contact-email'] ) ) {
|
| 251 |
if ( ! empty( $field ) && ! empty( $label ) ) :
|
| 252 |
$required = $field === 'req' ? true : false;
|
| 253 |
$wrap_classes = array(
|
| 254 |
+
'col-xs-12 contact_subject_wrap pirate_forms_three_inputs form_field_wrap',
|
| 255 |
);
|
| 256 |
// If this field was submitted with invalid data
|
| 257 |
if ( isset( $_SESSION[ $error_key ]['contact-subject'] ) ) {
|
| 335 |
'id' => 'pirate-forms-captcha',
|
| 336 |
'wrap' => array(
|
| 337 |
'type' => 'div',
|
| 338 |
+
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_captcha', array( 'col-xs-12 ' . ( $pirate_forms_options['pirateformsopt_recaptcha_field'] !== 'yes' ? 'col-sm-6 ' : '' ) . 'form_field_wrap form_captcha_wrap' ) ) ),
|
| 339 |
),
|
| 340 |
);
|
| 341 |
endif;
|
| 367 |
'class' => 'pirate-forms-submit-button btn btn-primary',
|
| 368 |
'wrap' => array(
|
| 369 |
'type' => 'div',
|
| 370 |
+
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_submit', array( 'col-xs-12 ' . ( ( ! empty( $pirate_forms_options['pirateformsopt_recaptcha_field'] ) && ( $pirate_forms_options['pirateformsopt_recaptcha_field'] !== 'yes' ) ) ? 'col-sm-6 ' : '' ) . 'form_field_wrap contact_submit_wrap' ) ) ),
|
| 371 |
),
|
| 372 |
'value' => $pirateformsopt_label_submit_btn,
|
| 373 |
);
|
| 415 |
* @param PirateForms_PhpFormBuilder $form_builder The form builder object.
|
| 416 |
*/
|
| 417 |
public function render_fields( $form_builder ) {
|
| 418 |
+
echo '<div class="pirate-forms-fields-container"><div class="pirate_forms_three_inputs_wrap">';
|
| 419 |
|
| 420 |
if ( isset( $form_builder->contact_name ) ) {
|
| 421 |
echo $form_builder->contact_name;
|
| 448 |
}
|
| 449 |
|
| 450 |
echo $form_builder->contact_submit;
|
| 451 |
+
|
| 452 |
+
echo '</div>';
|
| 453 |
}
|
| 454 |
|
| 455 |
/**
|
| 646 |
$subject = $pirate_forms_contact_subject;
|
| 647 |
}
|
| 648 |
|
| 649 |
+
$mail_body = ! empty( $pirate_forms_options['pirateformsopt_email_content'] ) ? $pirate_forms_options['pirateformsopt_email_content'] : PirateForms_Util::get_default_email_content( true, $form_id, true );
|
| 650 |
$mail_body = PirateForms_Util::replace_magic_tags( $mail_body, $body );
|
| 651 |
|
| 652 |
do_action( 'pirate_forms_before_sending', $pirate_forms_contact_email, $site_recipients, $subject, $mail_body, $headers, $attachments );
|
public/css/front.css
CHANGED
|
@@ -1,7 +1,8 @@
|
|
| 1 |
/*
|
| 2 |
-
Version: 2.3.
|
| 3 |
*/
|
| 4 |
-
.pirate_forms_wrap .form_field_wrap
|
|
|
|
| 5 |
margin-bottom: 20px;
|
| 6 |
}
|
| 7 |
|
|
@@ -15,81 +16,70 @@ Version: 2.3.0
|
|
| 15 |
margin-bottom: 20px;
|
| 16 |
}
|
| 17 |
|
|
|
|
| 18 |
.sidebar .form_field_wrap,
|
| 19 |
.sidebar-wrap .form_field_wrap,
|
| 20 |
#sidebar-secondary .form_field_wrap {
|
| 21 |
width: 100%;
|
|
|
|
| 22 |
}
|
| 23 |
|
| 24 |
-
.
|
| 25 |
-
.
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
margin-left: 0;
|
| 30 |
-
}
|
| 31 |
-
|
| 32 |
-
.sidebar .pirate_forms_wrap label,
|
| 33 |
-
.sidebar-wrap .pirate_forms_wrap label,
|
| 34 |
-
#sidebar-secondary .pirate_forms_wrap label {
|
| 35 |
-
display: none;
|
| 36 |
-
}
|
| 37 |
-
|
| 38 |
-
.pirate_forms_clearfix {
|
| 39 |
clear: both;
|
|
|
|
|
|
|
|
|
|
| 40 |
}
|
| 41 |
|
| 42 |
.contact_submit_wrap {
|
| 43 |
text-align: right;
|
| 44 |
}
|
| 45 |
|
| 46 |
-
.pirate-forms-
|
| 47 |
-
display:
|
| 48 |
-
|
| 49 |
-
position: absolute;
|
| 50 |
-
left: -9999px;
|
| 51 |
}
|
| 52 |
|
| 53 |
-
.pirate-forms-
|
| 54 |
-
|
| 55 |
-
width: auto;
|
| 56 |
}
|
| 57 |
|
| 58 |
-
.pirate-forms-
|
| 59 |
-
|
| 60 |
-
margin-
|
| 61 |
}
|
| 62 |
|
| 63 |
-
.pirate-forms-
|
| 64 |
-
|
| 65 |
-
|
|
|
|
| 66 |
}
|
| 67 |
|
| 68 |
-
.
|
| 69 |
-
|
| 70 |
-
width:
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
-webkit-transition: all 0.2s ease-in;
|
| 74 |
-
transition: all 0.2s ease-in;
|
| 75 |
-
/* IE 9 Fix */
|
| 76 |
}
|
| 77 |
|
| 78 |
-
.pirate-forms-
|
| 79 |
-
|
| 80 |
-
|
|
|
|
| 81 |
}
|
| 82 |
|
| 83 |
-
.pirate-forms-
|
| 84 |
display: inline-block;
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
cursor: pointer;
|
| 88 |
-
/* IE 9 Fix */
|
| 89 |
-
-webkit-transition: all 0.2s ease-in;
|
| 90 |
-
transition: all 0.2s ease-in;
|
| 91 |
}
|
| 92 |
|
| 93 |
-
|
| 94 |
-
|
|
|
|
|
|
|
| 95 |
}
|
| 1 |
/*
|
| 2 |
+
Version: 2.3.1
|
| 3 |
*/
|
| 4 |
+
.pirate_forms_wrap .form_field_wrap,
|
| 5 |
+
.widget .pirate_forms_wrap .form_field_wrap {
|
| 6 |
margin-bottom: 20px;
|
| 7 |
}
|
| 8 |
|
| 16 |
margin-bottom: 20px;
|
| 17 |
}
|
| 18 |
|
| 19 |
+
.widget .form_field_wrap,
|
| 20 |
.sidebar .form_field_wrap,
|
| 21 |
.sidebar-wrap .form_field_wrap,
|
| 22 |
#sidebar-secondary .form_field_wrap {
|
| 23 |
width: 100%;
|
| 24 |
+
max-width: 100%;
|
| 25 |
}
|
| 26 |
|
| 27 |
+
.pirate_forms_clearfix,
|
| 28 |
+
.pirate-forms-fields-container:after,
|
| 29 |
+
.pirate-forms-file-upload-wrapper:after {
|
| 30 |
+
display: block;
|
| 31 |
+
visibility: hidden;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
clear: both;
|
| 33 |
+
height: 0;
|
| 34 |
+
font-size: 0;
|
| 35 |
+
content: " ";
|
| 36 |
}
|
| 37 |
|
| 38 |
.contact_submit_wrap {
|
| 39 |
text-align: right;
|
| 40 |
}
|
| 41 |
|
| 42 |
+
.pirate-forms-maps-custom label {
|
| 43 |
+
display: inline-block;
|
| 44 |
+
cursor: pointer;
|
|
|
|
|
|
|
| 45 |
}
|
| 46 |
|
| 47 |
+
.pirate-forms-maps-custom span {
|
| 48 |
+
margin-left: 5px;
|
|
|
|
| 49 |
}
|
| 50 |
|
| 51 |
+
.pirate-forms-fields-container {
|
| 52 |
+
margin-right: -15px;
|
| 53 |
+
margin-left: -15px;
|
| 54 |
}
|
| 55 |
|
| 56 |
+
.pirate-forms-fields-container .form_field_wrap {
|
| 57 |
+
box-sizing: border-box;
|
| 58 |
+
padding-right: 15px;
|
| 59 |
+
padding-left: 15px;
|
| 60 |
}
|
| 61 |
|
| 62 |
+
.pirate_forms_three_inputs_wrap .form_field_wrap input {
|
| 63 |
+
box-sizing: border-box;
|
| 64 |
+
width: 100%;
|
| 65 |
+
max-width: 100%;
|
| 66 |
+
margin: 0;
|
|
|
|
|
|
|
|
|
|
| 67 |
}
|
| 68 |
|
| 69 |
+
.pirate-forms-fields-container .form_field_wrap textarea {
|
| 70 |
+
width: 100%;
|
| 71 |
+
max-width: 100%;
|
| 72 |
+
margin: 0;
|
| 73 |
}
|
| 74 |
|
| 75 |
+
.pirate_forms_wrap .form_field_wrap .pirate-forms-submit-button {
|
| 76 |
display: inline-block;
|
| 77 |
+
width: auto;
|
| 78 |
+
max-width: 100%;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
}
|
| 80 |
|
| 81 |
+
@media (max-width: 480px) {
|
| 82 |
+
.pirate_forms_wrap .form_field_wrap .pirate-forms-submit-button {
|
| 83 |
+
width: 100%;
|
| 84 |
+
}
|
| 85 |
}
|
readme.md
CHANGED
|
@@ -177,6 +177,13 @@ Activating the Pirate Contact Form plugin is just like any other plugin. If you'
|
|
| 177 |
4. Screenshot 4. Enabling SMTP
|
| 178 |
|
| 179 |
## Changelog ##
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
### 2.3.0 - 2017-11-27 ###
|
| 181 |
|
| 182 |
* Adds email content wysiwyg editor.
|
| 177 |
4. Screenshot 4. Enabling SMTP
|
| 178 |
|
| 179 |
## Changelog ##
|
| 180 |
+
### 2.3.1 - 2017-12-28 ###
|
| 181 |
+
|
| 182 |
+
* Improves layout and compatibility with various themes.
|
| 183 |
+
* Improves form default email format.
|
| 184 |
+
* Fix issues with various special characters in the magic tag fields.
|
| 185 |
+
|
| 186 |
+
|
| 187 |
### 2.3.0 - 2017-11-27 ###
|
| 188 |
|
| 189 |
* Adds email content wysiwyg editor.
|
readme.txt
CHANGED
|
@@ -87,6 +87,7 @@ This plugin started as a fork of https://wordpress.org/plugins/proper-contact-fo
|
|
| 87 |
== Frequently Asked Questions ==
|
| 88 |
|
| 89 |
|
|
|
|
| 90 |
= How I can get support for this contact form plugin ? =
|
| 91 |
|
| 92 |
You can learn more about PirateForms and ask for help by <a href="https://themeisle.com/contact/" >visiting ThemeIsle website</a>.
|
|
@@ -156,6 +157,15 @@ You can follow the full documentation [here](http://docs.themeisle.com/article/4
|
|
| 156 |
= How to add attributes to form in Pirate Forms =
|
| 157 |
[http://docs.themeisle.com/article/752-how-to-add-attributes-to-form-in-pirate-forms](http://docs.themeisle.com/article/752-how-to-add-attributes-to-form-in-pirate-forms)
|
| 158 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 159 |
== Installation ==
|
| 160 |
|
| 161 |
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:
|
|
@@ -177,6 +187,13 @@ Activating the Pirate Contact Form plugin is just like any other plugin. If you'
|
|
| 177 |
4. Screenshot 4. Enabling SMTP
|
| 178 |
|
| 179 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
= 2.3.0 - 2017-11-27 =
|
| 181 |
|
| 182 |
* Adds email content wysiwyg editor.
|
| 87 |
== Frequently Asked Questions ==
|
| 88 |
|
| 89 |
|
| 90 |
+
|
| 91 |
= How I can get support for this contact form plugin ? =
|
| 92 |
|
| 93 |
You can learn more about PirateForms and ask for help by <a href="https://themeisle.com/contact/" >visiting ThemeIsle website</a>.
|
| 157 |
= How to add attributes to form in Pirate Forms =
|
| 158 |
[http://docs.themeisle.com/article/752-how-to-add-attributes-to-form-in-pirate-forms](http://docs.themeisle.com/article/752-how-to-add-attributes-to-form-in-pirate-forms)
|
| 159 |
|
| 160 |
+
= How to change default email content in Pirate forms =
|
| 161 |
+
[http://docs.themeisle.com/article/779-how-to-change-default-email-content-in-pirate-forms](http://docs.themeisle.com/article/779-how-to-change-default-email-content-in-pirate-forms)
|
| 162 |
+
|
| 163 |
+
= How to change default email content per form in Pirate forms =
|
| 164 |
+
[http://docs.themeisle.com/article/780-how-to-change-default-email-content-per-form-in-pirate-forms](http://docs.themeisle.com/article/780-how-to-change-default-email-content-per-form-in-pirate-forms)
|
| 165 |
+
|
| 166 |
+
= How to install and use extended version of Pirate Forms =
|
| 167 |
+
[http://docs.themeisle.com/article/787-how-to-install-and-use-extended-version-of-pirate-forms](http://docs.themeisle.com/article/787-how-to-install-and-use-extended-version-of-pirate-forms)
|
| 168 |
+
|
| 169 |
== Installation ==
|
| 170 |
|
| 171 |
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:
|
| 187 |
4. Screenshot 4. Enabling SMTP
|
| 188 |
|
| 189 |
== Changelog ==
|
| 190 |
+
= 2.3.1 - 2017-12-28 =
|
| 191 |
+
|
| 192 |
+
* Improves layout and compatibility with various themes.
|
| 193 |
+
* Improves form default email format.
|
| 194 |
+
* Fix issues with various special characters in the magic tag fields.
|
| 195 |
+
|
| 196 |
+
|
| 197 |
= 2.3.0 - 2017-11-27 =
|
| 198 |
|
| 199 |
* Adds email content wysiwyg editor.
|
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 ComposerAutoloaderInit1fb09e2a03b8b1f08b8c28e6eb4a37c2::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 ComposerAutoloaderInit9220f162d29535efe69cbfc410dc6bcd::getLoader();
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-endpoints.php
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* The class that exposes endpoints.
|
| 4 |
+
*
|
| 5 |
+
* @package ThemeIsleSDK
|
| 6 |
+
* @subpackage Endpoints
|
| 7 |
+
* @copyright Copyright (c) 2017, Marius Cristea
|
| 8 |
+
* @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
|
| 9 |
+
* @since 1.0.0
|
| 10 |
+
*/
|
| 11 |
+
// Exit if accessed directly.
|
| 12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
| 13 |
+
exit;
|
| 14 |
+
}
|
| 15 |
+
if ( ! class_exists( 'ThemeIsle_SDK_Endpoints' ) ) :
|
| 16 |
+
/**
|
| 17 |
+
* Expose endpoints for ThemeIsle SDK.
|
| 18 |
+
*/
|
| 19 |
+
final class ThemeIsle_SDK_Endpoints {
|
| 20 |
+
|
| 21 |
+
const SDK_ENDPOINT = 'themeisle-sdk';
|
| 22 |
+
const SDK_ENDPOINT_VERSION = 1;
|
| 23 |
+
|
| 24 |
+
const HASH_FILE = 'themeisle-hash.json';
|
| 25 |
+
|
| 26 |
+
// if true, the endpoint will expect a product slug and will return the value only for that.
|
| 27 |
+
const PRODUCT_SPECIFIC = false;
|
| 28 |
+
|
| 29 |
+
/**
|
| 30 |
+
* @var ThemeIsle_SDK_Product $products Array of Themeisle Product.
|
| 31 |
+
*/
|
| 32 |
+
static protected $products = array();
|
| 33 |
+
|
| 34 |
+
/**
|
| 35 |
+
* ThemeIsle_SDK_Endpoints constructor.
|
| 36 |
+
*
|
| 37 |
+
* @param ThemeIsle_SDK_Product $product_object Product Object.
|
| 38 |
+
*/
|
| 39 |
+
public function __construct( $product_object ) {
|
| 40 |
+
if ( $product_object instanceof ThemeIsle_SDK_Product ) {
|
| 41 |
+
self::$products[] = $product_object;
|
| 42 |
+
}
|
| 43 |
+
$this->setup_endpoints();
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
/**
|
| 47 |
+
* Setup endpoints.
|
| 48 |
+
*/
|
| 49 |
+
private function setup_endpoints() {
|
| 50 |
+
global $wp_version;
|
| 51 |
+
if ( version_compare( $wp_version, '4.4', '<' ) ) {
|
| 52 |
+
// no REST support.
|
| 53 |
+
return;
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
$this->setup_rest();
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
/**
|
| 60 |
+
* Setup REST endpoints.
|
| 61 |
+
*/
|
| 62 |
+
private function setup_rest() {
|
| 63 |
+
add_action( 'rest_api_init', array( $this, 'rest_register' ) );
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
/**
|
| 67 |
+
* Registers the endpoints
|
| 68 |
+
*/
|
| 69 |
+
function rest_register() {
|
| 70 |
+
register_rest_route(
|
| 71 |
+
self::SDK_ENDPOINT . '/v' . self::SDK_ENDPOINT_VERSION,
|
| 72 |
+
'/checksum/' . ( self::PRODUCT_SPECIFIC ? '(?P<slug>.*)/' : '' ),
|
| 73 |
+
array(
|
| 74 |
+
'methods' => 'GET',
|
| 75 |
+
'callback' => array( $this, 'checksum' ),
|
| 76 |
+
)
|
| 77 |
+
);
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
/**
|
| 81 |
+
* The checksum endpoint.
|
| 82 |
+
*
|
| 83 |
+
* @param WP_REST_Request $data the request.
|
| 84 |
+
*
|
| 85 |
+
* @return WP_REST_Response Response or the error
|
| 86 |
+
*/
|
| 87 |
+
function checksum( WP_REST_Request $data ) {
|
| 88 |
+
$products = self::$products;
|
| 89 |
+
if ( self::PRODUCT_SPECIFIC ) {
|
| 90 |
+
$params = $this->validate_params( $data, array( 'slug' ) );
|
| 91 |
+
foreach ( self::$products as $product ) {
|
| 92 |
+
if ( $params['slug'] === $product->get_slug() ) {
|
| 93 |
+
$products = array( $product );
|
| 94 |
+
break;
|
| 95 |
+
}
|
| 96 |
+
}
|
| 97 |
+
}
|
| 98 |
+
$response = array();
|
| 99 |
+
$custom_css = $this->has_custom_css();
|
| 100 |
+
if ( is_bool( $custom_css ) ) {
|
| 101 |
+
$response['custom_css'] = $custom_css;
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
$response['child_theme'] = $this->get_theme_properties();
|
| 105 |
+
|
| 106 |
+
foreach ( $products as $product ) {
|
| 107 |
+
$files = array();
|
| 108 |
+
switch ( $product->get_type() ) {
|
| 109 |
+
case 'plugin':
|
| 110 |
+
$files = array();
|
| 111 |
+
break;
|
| 112 |
+
case 'theme':
|
| 113 |
+
$files = array( 'style.css', 'functions.php' );
|
| 114 |
+
break;
|
| 115 |
+
}
|
| 116 |
+
|
| 117 |
+
$error = '';
|
| 118 |
+
|
| 119 |
+
// if any element in the $files array contains a '/', this would imply recursion is required.
|
| 120 |
+
$diff = $this->generate_diff( $product, $files, array_reduce( $files, array( $this, 'is_recursion_required' ), false ) );
|
| 121 |
+
if ( is_wp_error( $diff ) ) {
|
| 122 |
+
$error = $diff->get_error_message();
|
| 123 |
+
$diff = array();
|
| 124 |
+
}
|
| 125 |
+
|
| 126 |
+
$response['products'][] = array(
|
| 127 |
+
'slug' => $product->get_slug(),
|
| 128 |
+
'version' => $product->get_version(),
|
| 129 |
+
'diffs' => $diff,
|
| 130 |
+
'error' => $error,
|
| 131 |
+
);
|
| 132 |
+
}
|
| 133 |
+
|
| 134 |
+
return new WP_REST_Response( array( 'checksum' => $response ) );
|
| 135 |
+
}
|
| 136 |
+
|
| 137 |
+
/**
|
| 138 |
+
* Get the current theme properties.
|
| 139 |
+
*
|
| 140 |
+
* @return array Properties of the current theme.
|
| 141 |
+
*/
|
| 142 |
+
function get_theme_properties() {
|
| 143 |
+
if ( ! is_child_theme() ) {
|
| 144 |
+
return false;
|
| 145 |
+
}
|
| 146 |
+
|
| 147 |
+
$properties = array();
|
| 148 |
+
$theme = wp_get_theme();
|
| 149 |
+
// @codingStandardsIgnoreStart
|
| 150 |
+
$properties['name'] = $theme->Name;
|
| 151 |
+
// @codingStandardsIgnoreEnd
|
| 152 |
+
|
| 153 |
+
// get the files in the child theme.
|
| 154 |
+
require_once( ABSPATH . 'wp-admin/includes/file.php' );
|
| 155 |
+
WP_Filesystem();
|
| 156 |
+
global $wp_filesystem;
|
| 157 |
+
$path = str_replace( ABSPATH, $wp_filesystem->abspath(), get_stylesheet_directory() );
|
| 158 |
+
$list = $wp_filesystem->dirlist( $path, false, false );
|
| 159 |
+
if ( $list ) {
|
| 160 |
+
$list = array_keys( self::flatten_dirlist( $list ) );
|
| 161 |
+
$properties['files'] = $list;
|
| 162 |
+
}
|
| 163 |
+
return $properties;
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
/**
|
| 167 |
+
* Check if custom css has been added to the theme.
|
| 168 |
+
*
|
| 169 |
+
* @return bool Whether custom css has been added to the theme.
|
| 170 |
+
*/
|
| 171 |
+
private function has_custom_css() {
|
| 172 |
+
$query = new WP_Query(
|
| 173 |
+
array(
|
| 174 |
+
'post_type' => 'custom_css',
|
| 175 |
+
'post_status' => 'publish',
|
| 176 |
+
'numberposts' => 1,
|
| 177 |
+
'update_post_meta_cache' => false,
|
| 178 |
+
'update_post_term_cache' => false,
|
| 179 |
+
)
|
| 180 |
+
);
|
| 181 |
+
|
| 182 |
+
if ( $query->have_posts() ) {
|
| 183 |
+
$query->the_post();
|
| 184 |
+
$content = get_the_content();
|
| 185 |
+
// if the content contains a colon, a CSS rule has been added.
|
| 186 |
+
return strpos( $content, ':' ) === false ? false : true;
|
| 187 |
+
}
|
| 188 |
+
return false;
|
| 189 |
+
}
|
| 190 |
+
|
| 191 |
+
/**
|
| 192 |
+
* Check if recursion needs to be enabled on the WP_Filesystem by reducing the array of files to a boolean.
|
| 193 |
+
*
|
| 194 |
+
* @param string $carry Value of the previous iteration.
|
| 195 |
+
* @param string $item Value of the current iteration.
|
| 196 |
+
*
|
| 197 |
+
* @return bool Whether to recurse or not.
|
| 198 |
+
*/
|
| 199 |
+
function is_recursion_required( $carry, $item ) {
|
| 200 |
+
if ( ! $carry ) {
|
| 201 |
+
return ( strpos( $item, '/' ) !== false );
|
| 202 |
+
}
|
| 203 |
+
return $carry;
|
| 204 |
+
}
|
| 205 |
+
|
| 206 |
+
/**
|
| 207 |
+
* Generate the diff of the files.
|
| 208 |
+
*
|
| 209 |
+
* @param ThemeIsle_SDK_Product $product Themeisle Product.
|
| 210 |
+
* @param array $files Array of files.
|
| 211 |
+
* @param bool $recurse Whether to recurse or not.
|
| 212 |
+
*
|
| 213 |
+
* @return string
|
| 214 |
+
*/
|
| 215 |
+
private function generate_diff( $product, $files, $recurse = false ) {
|
| 216 |
+
require_once( ABSPATH . 'wp-admin/includes/file.php' );
|
| 217 |
+
WP_Filesystem();
|
| 218 |
+
global $wp_filesystem;
|
| 219 |
+
|
| 220 |
+
$diff = array();
|
| 221 |
+
$path = str_replace( ABSPATH, $wp_filesystem->abspath(), plugin_dir_path( $product->get_basefile() ) );
|
| 222 |
+
$list = $wp_filesystem->dirlist( $path, false, $recurse );
|
| 223 |
+
// nothing found.
|
| 224 |
+
if ( ! $list ) {
|
| 225 |
+
return $diff;
|
| 226 |
+
}
|
| 227 |
+
$list = array_keys( self::flatten_dirlist( $list ) );
|
| 228 |
+
|
| 229 |
+
// now let's get the valid files that actually exist.
|
| 230 |
+
if ( empty( $files ) ) {
|
| 231 |
+
$files = $list;
|
| 232 |
+
} else {
|
| 233 |
+
$files = array_intersect( $files, $list );
|
| 234 |
+
}
|
| 235 |
+
|
| 236 |
+
// fetch the calculated hashes.
|
| 237 |
+
if ( ! $wp_filesystem->is_readable( $path . '/' . self::HASH_FILE ) ) {
|
| 238 |
+
return new WP_Error( 'themeisle_sdk_hash_not_found', sprintf( __( '%s not found', 'themeisle-sdk' ), self::HASH_FILE ) );
|
| 239 |
+
}
|
| 240 |
+
|
| 241 |
+
$hashes = json_decode( $wp_filesystem->get_contents( $path . '/' . self::HASH_FILE ), true );
|
| 242 |
+
ksort( $hashes );
|
| 243 |
+
|
| 244 |
+
$diff = array();
|
| 245 |
+
foreach ( $files as $file ) {
|
| 246 |
+
// file does not exist in the hashes.
|
| 247 |
+
if ( ! array_key_exists( $file, $hashes ) ) {
|
| 248 |
+
continue;
|
| 249 |
+
}
|
| 250 |
+
$new = md5( $wp_filesystem->get_contents( $path . $file ) );
|
| 251 |
+
$old = $hashes[ $file ];
|
| 252 |
+
|
| 253 |
+
// same hash, bail.
|
| 254 |
+
if ( $new === $old ) {
|
| 255 |
+
continue;
|
| 256 |
+
}
|
| 257 |
+
$diff[] = $file;
|
| 258 |
+
}
|
| 259 |
+
return $diff;
|
| 260 |
+
}
|
| 261 |
+
|
| 262 |
+
/**
|
| 263 |
+
* Flatten the results of WP_Filesystem::dirlist() for iterating over.
|
| 264 |
+
*
|
| 265 |
+
* @access private
|
| 266 |
+
*
|
| 267 |
+
* @param array $nested_files Array of files as returned by WP_Filesystem::dirlist().
|
| 268 |
+
* @param string $path Relative path to prepend to child nodes. Optional.
|
| 269 |
+
* @return array $files A flattened array of the $nested_files specified.
|
| 270 |
+
*/
|
| 271 |
+
private static function flatten_dirlist( $nested_files, $path = '' ) {
|
| 272 |
+
$files = array();
|
| 273 |
+
foreach ( $nested_files as $name => $details ) {
|
| 274 |
+
$files[ $path . $name ] = $details;
|
| 275 |
+
// Append children recursively
|
| 276 |
+
if ( ! empty( $details['files'] ) ) {
|
| 277 |
+
$children = self::flatten_dirlist( $details['files'], $path . $name . '/' );
|
| 278 |
+
// Merge keeping possible numeric keys, which array_merge() will reindex from 0..n
|
| 279 |
+
$files = $files + $children;
|
| 280 |
+
}
|
| 281 |
+
}
|
| 282 |
+
return $files;
|
| 283 |
+
}
|
| 284 |
+
|
| 285 |
+
/**
|
| 286 |
+
* Validates the parameters to the API
|
| 287 |
+
*
|
| 288 |
+
* @param WP_REST_Request $data the request.
|
| 289 |
+
* @param array $params the parameters to validate.
|
| 290 |
+
*
|
| 291 |
+
* @return array of parameter name=>value
|
| 292 |
+
*/
|
| 293 |
+
private function validate_params( WP_REST_Request $data, $params ) {
|
| 294 |
+
$collect = array();
|
| 295 |
+
foreach ( $params as $param ) {
|
| 296 |
+
$value = sanitize_text_field( $data[ $param ] );
|
| 297 |
+
if ( empty( $value ) ) {
|
| 298 |
+
return new WP_Error(
|
| 299 |
+
'themeisle_' . $param . '_invalid', sprintf( __( 'Invalid %', 'themeisle-sdk' ), $param ), array(
|
| 300 |
+
'status' => 403,
|
| 301 |
+
)
|
| 302 |
+
);
|
| 303 |
+
} else {
|
| 304 |
+
$collect[ $param ] = $value;
|
| 305 |
+
}
|
| 306 |
+
}
|
| 307 |
+
|
| 308 |
+
return $collect;
|
| 309 |
+
}
|
| 310 |
+
|
| 311 |
+
}
|
| 312 |
+
endif;
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-licenser.php
CHANGED
|
@@ -73,6 +73,7 @@ if ( ! class_exists( 'ThemeIsle_SDK_Licenser' ) ) :
|
|
| 73 |
add_action( 'admin_init', array( $this, 'activate_license' ) );
|
| 74 |
add_action( 'admin_init', array( $this, 'product_valid' ), 99999999 );
|
| 75 |
add_action( 'admin_notices', array( $this, 'show_notice' ) );
|
|
|
|
| 76 |
}
|
| 77 |
|
| 78 |
/**
|
| 73 |
add_action( 'admin_init', array( $this, 'activate_license' ) );
|
| 74 |
add_action( 'admin_init', array( $this, 'product_valid' ), 99999999 );
|
| 75 |
add_action( 'admin_notices', array( $this, 'show_notice' ) );
|
| 76 |
+
add_filter( $this->product->get_key() . '_license_status', array( $this, 'get_license_status' ) );
|
| 77 |
}
|
| 78 |
|
| 79 |
/**
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-loader.php
CHANGED
|
@@ -76,6 +76,9 @@ if ( ! class_exists( 'ThemeIsle_SDK_Loader' ) ) :
|
|
| 76 |
if ( ! $product_object->is_external_author() ) {
|
| 77 |
new ThemeIsle_SDK_Rollback( $product_object );
|
| 78 |
}
|
|
|
|
|
|
|
|
|
|
| 79 |
return self::$instance;
|
| 80 |
}
|
| 81 |
|
| 76 |
if ( ! $product_object->is_external_author() ) {
|
| 77 |
new ThemeIsle_SDK_Rollback( $product_object );
|
| 78 |
}
|
| 79 |
+
|
| 80 |
+
new ThemeIsle_SDK_Endpoints( $product_object );
|
| 81 |
+
|
| 82 |
return self::$instance;
|
| 83 |
}
|
| 84 |
|
vendor/codeinwp/themeisle-sdk/class-themeisle-sdk-logger.php
CHANGED
|
@@ -77,6 +77,13 @@ if ( ! class_exists( 'ThemeIsle_SDK_Logger' ) ) :
|
|
| 77 |
* Send the statistics to the api endpoint
|
| 78 |
*/
|
| 79 |
public function send_log() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
wp_remote_post(
|
| 81 |
$this->logging_url, array(
|
| 82 |
'method' => 'POST',
|
|
@@ -86,10 +93,12 @@ if ( ! class_exists( 'ThemeIsle_SDK_Logger' ) ) :
|
|
| 86 |
'X-ThemeIsle-Event' => 'log_site',
|
| 87 |
),
|
| 88 |
'body' => array(
|
| 89 |
-
'site'
|
| 90 |
-
'slug'
|
| 91 |
-
'version'
|
| 92 |
-
'data'
|
|
|
|
|
|
|
| 93 |
),
|
| 94 |
)
|
| 95 |
);
|
| 77 |
* Send the statistics to the api endpoint
|
| 78 |
*/
|
| 79 |
public function send_log() {
|
| 80 |
+
$environment = array();
|
| 81 |
+
$theme = wp_get_theme();
|
| 82 |
+
$environment['theme'] = array();
|
| 83 |
+
$environment['theme']['name'] = $theme->get( 'Name' );
|
| 84 |
+
$environment['theme']['author'] = $theme->get( 'Author' );
|
| 85 |
+
$environment['plugins'] = get_option( 'active_plugins' );
|
| 86 |
+
|
| 87 |
wp_remote_post(
|
| 88 |
$this->logging_url, array(
|
| 89 |
'method' => 'POST',
|
| 93 |
'X-ThemeIsle-Event' => 'log_site',
|
| 94 |
),
|
| 95 |
'body' => array(
|
| 96 |
+
'site' => get_site_url(),
|
| 97 |
+
'slug' => $this->product->get_slug(),
|
| 98 |
+
'version' => $this->product->get_version(),
|
| 99 |
+
'data' => apply_filters( $this->product->get_key() . '_logger_data', array() ),
|
| 100 |
+
'environment' => $environment,
|
| 101 |
+
'license' => apply_filters( $this->product->get_key() . '_license_status', '' ),
|
| 102 |
),
|
| 103 |
)
|
| 104 |
);
|
vendor/codeinwp/themeisle-sdk/load.php
CHANGED
|
@@ -11,7 +11,7 @@
|
|
| 11 |
*/
|
| 12 |
|
| 13 |
// Current SDK version and path.
|
| 14 |
-
$themeisle_sdk_version = '
|
| 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.0.0';
|
| 15 |
$themeisle_sdk_path = dirname( __FILE__ );
|
| 16 |
|
| 17 |
global $themeisle_sdk_max_version;
|
vendor/codeinwp/themeisle-sdk/start.php
CHANGED
|
@@ -24,6 +24,7 @@ $files_to_load = array(
|
|
| 24 |
'class-themeisle-sdk-widget.php',
|
| 25 |
'class-themeisle-sdk-widget-dashboard-blog.php',
|
| 26 |
'class-themeisle-sdk-widgets-factory.php',
|
|
|
|
| 27 |
);
|
| 28 |
|
| 29 |
foreach ( $files_to_load as $file ) {
|
| 24 |
'class-themeisle-sdk-widget.php',
|
| 25 |
'class-themeisle-sdk-widget-dashboard-blog.php',
|
| 26 |
'class-themeisle-sdk-widgets-factory.php',
|
| 27 |
+
'class-themeisle-sdk-endpoints.php',
|
| 28 |
);
|
| 29 |
|
| 30 |
foreach ( $files_to_load as $file ) {
|
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 ComposerAutoloaderInitee8868fb85498203ce6a1cdc3be4909f
|
|
| 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 ComposerAutoloaderInitee8868fb85498203ce6a1cdc3be4909f
|
|
| 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 ComposerAutoloaderInit1fb09e2a03b8b1f08b8c28e6eb4a37c2
|
| 6 |
{
|
| 7 |
private static $loader;
|
| 8 |
|
| 19 |
return self::$loader;
|
| 20 |
}
|
| 21 |
|
| 22 |
+
spl_autoload_register(array('ComposerAutoloaderInit1fb09e2a03b8b1f08b8c28e6eb4a37c2', 'loadClassLoader'), true, true);
|
| 23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
| 24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit1fb09e2a03b8b1f08b8c28e6eb4a37c2', '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 |
+
composerRequire1fb09e2a03b8b1f08b8c28e6eb4a37c2($fileIdentifier, $file);
|
| 46 |
}
|
| 47 |
|
| 48 |
return $loader;
|
| 49 |
}
|
| 50 |
}
|
| 51 |
|
| 52 |
+
function composerRequire1fb09e2a03b8b1f08b8c28e6eb4a37c2($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 ComposerAutoloaderInit30e0d35d9f2c7d783fb1a973f446e13b {
|
|
| 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 ComposerAutoloaderInit9220f162d29535efe69cbfc410dc6bcd {
|
| 6 |
private static $loader;
|
| 7 |
|
| 8 |
public static function loadClassLoader($class) {
|
| 19 |
return self::$loader;
|
| 20 |
}
|
| 21 |
|
| 22 |
+
spl_autoload_register(array('ComposerAutoloaderInit9220f162d29535efe69cbfc410dc6bcd', 'loadClassLoader'), true /*, true */);
|
| 23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
| 24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit9220f162d29535efe69cbfc410dc6bcd', '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": "2017-
|
| 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": "3a40b987f7852134bd29bb8a1ecfaca6b7c1f236"
|
| 10 |
},
|
| 11 |
"dist": {
|
| 12 |
"type": "zip",
|
| 13 |
+
"url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/3a40b987f7852134bd29bb8a1ecfaca6b7c1f236",
|
| 14 |
+
"reference": "3a40b987f7852134bd29bb8a1ecfaca6b7c1f236",
|
| 15 |
"shasum": ""
|
| 16 |
},
|
| 17 |
+
"time": "2017-12-28 13:15:26",
|
| 18 |
"type": "library",
|
| 19 |
"installation-source": "dist",
|
| 20 |
"autoload": {
|
