Version Description
Download this release
Release Info
Developer | pross |
Plugin | WordPress Page Builder – Beaver Builder |
Version | 2.2.2.5 |
Comparing to | |
See all releases |
Code changes from version 2.2.1.5 to 2.2.2.5
- changelog.txt +72 -0
- classes/class-fl-builder-admin-settings.php +37 -8
- classes/class-fl-builder-admin.php +6 -3
- classes/class-fl-builder-art.php +2 -0
- classes/class-fl-builder-css.php +15 -5
- classes/class-fl-builder-debug.php +25 -0
- classes/class-fl-builder-icons.php +0 -4
- classes/class-fl-builder-loader.php +2 -1
- classes/class-fl-builder-model.php +30 -4
- classes/class-fl-builder-revisions.php +7 -5
- classes/class-fl-builder-service-aweber.php +3 -0
- classes/class-fl-builder-service-campayn.php +3 -0
- classes/class-fl-builder-service-constant-contact.php +5 -0
- classes/class-fl-builder-service-convertkit.php +2 -0
- classes/class-fl-builder-service-drip.php +5 -0
- classes/class-fl-builder-service-enormail.php +2 -0
- classes/class-fl-builder-service-getresponse.php +1 -0
- classes/class-fl-builder-service-godaddy-email-marketing.php +1 -0
- classes/class-fl-builder-service-icontact-pro.php +8 -3
- classes/class-fl-builder-service-icontact.php +7 -3
- classes/class-fl-builder-service-infusionsoft.php +2 -0
- classes/class-fl-builder-service-mailchimp.php +1 -0
- classes/class-fl-builder-service-mailerlite.php +2 -0
- classes/class-fl-builder-service-mailpoet.php +1 -0
- classes/class-fl-builder-service-mailrelay.php +3 -0
- classes/class-fl-builder-service-mautic.php +2 -1
- classes/class-fl-builder-service-ontraport.php +2 -0
- classes/class-fl-builder-service-sendinblue.php +3 -0
- classes/class-fl-builder-service-sendy.php +2 -0
- classes/class-fl-builder-ui-settings-forms.php +17 -11
- classes/class-fl-builder-usage.php +1 -0
- classes/class-fl-builder-wp-blocks.php +5 -0
- classes/class-fl-builder-wpcli-command.php +361 -5
- classes/class-fl-builder.php +35 -19
- css/fl-builder-admin-settings.css +76 -0
- css/fl-builder.css +50 -2
- css/fl-builder.min.css +1 -1
- css/fl-lightbox.css +1 -3
- fl-builder.php +1 -1
- fonts/fontawesome/css/all.min.css +1 -1
- fonts/fontawesome/css/v4-shims.min.css +5 -0
- fonts/fontawesome/webfonts/fa-brands-400.eot +0 -0
- fonts/fontawesome/webfonts/fa-brands-400.svg +3 -3
- fonts/fontawesome/webfonts/fa-brands-400.ttf +0 -0
- fonts/fontawesome/webfonts/fa-brands-400.woff +0 -0
- fonts/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
- fonts/fontawesome/webfonts/fa-regular-400.eot +0 -0
- fonts/fontawesome/webfonts/fa-regular-400.svg +2 -2
- fonts/fontawesome/webfonts/fa-regular-400.ttf +0 -0
- fonts/fontawesome/webfonts/fa-regular-400.woff +0 -0
- fonts/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
- fonts/fontawesome/webfonts/fa-solid-900.eot +0 -0
- fonts/fontawesome/webfonts/fa-solid-900.svg +2 -2
- fonts/fontawesome/webfonts/fa-solid-900.ttf +0 -0
- fonts/fontawesome/webfonts/fa-solid-900.woff +0 -0
- fonts/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
- includes/admin-posts.php +6 -2
- includes/admin-settings-welcome.php +20 -2
- includes/column-settings.php +1 -0
- includes/compatibility.php +5 -43
- includes/export.php +3 -3
- includes/loop-settings-matching.php +4 -1
- includes/module-settings.php +1 -0
- includes/row-settings.php +1 -0
- includes/shape-layer.php +1 -1
- includes/strings.php +1 -1
- includes/ui-js-config.php +10 -0
- includes/ui-js-templates.php +30 -4
- includes/ui-loop-settings.php +2 -0
- includes/updater-config.php +1 -1
- includes/updater/classes/class-fl-updater.php +3 -1
- js/fl-builder-admin-settings.js +45 -0
- js/fl-builder-ajax-layout.js +2 -1
- js/fl-builder-layout.js +1 -1
- js/fl-builder-libs.js +93 -0
- js/fl-builder-preview.js +12 -3
- js/fl-builder-responsive-preview.js +1 -1
- js/fl-builder-revisions.js +11 -3
- js/fl-builder-services.js +6 -6
- js/fl-builder-ui-settings-forms.js +2 -2
- js/fl-builder.js +98 -35
- js/fl-builder.min.js +9 -9
changelog.txt
CHANGED
@@ -1,3 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
<h4>2.2.1.5 - 03/20/2019</h4>
|
2 |
<p><strong>Hot Fix</strong></p>
|
3 |
<ul>
|
1 |
+
<h4>2.2.2.5 - 04/16/2019</h4>
|
2 |
+
<p><strong>Hot Fix</strong></p>
|
3 |
+
<ul>
|
4 |
+
<li>Fixed some Google fonts not rendering correctly if they have numbers in the font name.</li>
|
5 |
+
<li>Updated the crash error message popup text.</li>
|
6 |
+
<li>Update checks now use SSL urls.</li>
|
7 |
+
<li>Fixed preview issue. Type unit was using the number value intead of the unit value.</li>
|
8 |
+
<li>Fixed WPCLI issue when using PHP5.</li>
|
9 |
+
<li>Fixed issue with Maps module and ACF map field connection.</li>
|
10 |
+
<li>Fixed undefined index warning on some Woocommerce pages.</li>
|
11 |
+
<li>Reverted text editor module styles overriding individual styles set in TinyMCE added in 2.2.2.1</li>
|
12 |
+
</ul>
|
13 |
+
|
14 |
+
<h4>2.2.2.4 - 04/08/2019</h4>
|
15 |
+
<p><strong>Hot Fix</strong></p>
|
16 |
+
<ul>
|
17 |
+
<li>Fixed settings.js not being executed in 3rd party plugins.</li>
|
18 |
+
</ul>
|
19 |
+
|
20 |
+
<h4>2.2.2.3 - 04/06/2019</h4>
|
21 |
+
<p><strong>Hot Fix</strong></p>
|
22 |
+
<ul>
|
23 |
+
<li>Fixed Javascript error in Post Grid.</li>
|
24 |
+
<li>Fixed incorrect schema markup in Post Grid.</li>
|
25 |
+
</ul>
|
26 |
+
|
27 |
+
<h4>2.2.2.2 - 04/04/2019</h4>
|
28 |
+
<p><strong>Hot Fix</strong></p>
|
29 |
+
<ul>
|
30 |
+
<li>Added missing debounce dependency for Post Grid Module if scroll is used for pagination.</li>
|
31 |
+
<li>Fixed an issue where deleting a Global Saved Module affects the other globals in a layout.</li>
|
32 |
+
</ul>
|
33 |
+
|
34 |
+
<h4>2.2.2.1 - 04/03/2019</h4>
|
35 |
+
<p><strong>Enhancements</strong></p>
|
36 |
+
<ul>
|
37 |
+
<li>Updated Font Awesome to 5.8.1</li>
|
38 |
+
<li>Added popup with link to support when a fatal error is detected in AJAX.</li>
|
39 |
+
<li>Removed references to Font Awesome 4, if its still needed by a module or the theme a shim will load to map icons to FA5.</li>
|
40 |
+
<li>Added option to set placeholder text in Subscribe Module.</li>
|
41 |
+
<li>Added order by random option to Content Slider Module.</li>
|
42 |
+
<li>Added santization to global settings on save.</li>
|
43 |
+
<li>New filter <code>fl_post_grid_disable_schema</code> to disable all schema in Post Grid Module.</li>
|
44 |
+
<li>When restoring a layout revision the JS and CSS are now included in the revision.</li>
|
45 |
+
<li>Added general post counts to debug info page.</li>
|
46 |
+
<li>Title bar now shows what you are editing, row/module/page etc.</li>
|
47 |
+
<li>Added setting for responsive menu label in Menu Module.</li>
|
48 |
+
<li>Added support for youtu.be links in jQuery.magnificpopup.</li>
|
49 |
+
<li>Added shape name as a CSS class to shape layer for easier styling.</li>
|
50 |
+
<li>Added <code>nav</code> markup and schema to Menu Module.</li>
|
51 |
+
<li>Added more WPCLI support, you can now control Themer layouts.</li>
|
52 |
+
<li>Added indicators to main UI menu if there are revisions and css/js for the current layout.</li>
|
53 |
+
</ul>
|
54 |
+
<p><strong>Bug Fixes</strong></p>
|
55 |
+
<ul>
|
56 |
+
<li>Fixed rare save error caused by broken zlib server PHP settings.</li>
|
57 |
+
<li>Fixed internal templates showing in the link dropdown when using tinymce.</li>
|
58 |
+
<li>Fixed several browser jQuery deprecation warnings.</li>
|
59 |
+
<li>Fixed UI glitch with colorpicker in Firefox, X to reset was misaligned.</li>
|
60 |
+
<li>Fixed incorrect order of media queries rendered with FLBuilderCSS.</li>
|
61 |
+
<li>Fixed a bug where unable to add new module when editing a saved column.</li>
|
62 |
+
<li>Fixed laggy module settings caused by updated jQuery.validate library.</li>
|
63 |
+
<li>Fixed Youtube background no longer auto-playing in Safari when audio is On.</li>
|
64 |
+
<li>Fixed text editor module styles overriding individual styles set in TinyMCE.</li>
|
65 |
+
<li>Fixed functions being stripped from tiny_mce_before_init because of JSON.Stringify().</li>
|
66 |
+
<li>Fixed jQuery migrate warning in _initTimezoneField().</li>
|
67 |
+
<li>Make sure submenu icon won’t display on mobile if sets to None in Menu Module.</li>
|
68 |
+
<li>Removed all frameborder=0 as it is not needed in modern browsers.</li>
|
69 |
+
<li>Removed focus CSS from tinymce textarea.</li>
|
70 |
+
<li>Removed Caldera Forms Widget fix added in 2.2.1.5, Caldera Forms 1.8.4 fixed the issue.</li>
|
71 |
+
</ul>
|
72 |
+
|
73 |
<h4>2.2.1.5 - 03/20/2019</h4>
|
74 |
<p><strong>Hot Fix</strong></p>
|
75 |
<ul>
|
classes/class-fl-builder-admin-settings.php
CHANGED
@@ -23,7 +23,40 @@ final class FLBuilderAdminSettings {
|
|
23 |
* @return void
|
24 |
*/
|
25 |
static public function init() {
|
26 |
-
add_action( '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
}
|
28 |
|
29 |
/**
|
@@ -125,7 +158,7 @@ final class FLBuilderAdminSettings {
|
|
125 |
if ( ! empty( $icon ) ) {
|
126 |
echo '<img role="presentation" src="' . $icon . '" />';
|
127 |
}
|
128 |
-
|
129 |
echo '<span>' . sprintf( _x( '%s Settings', '%s stands for custom branded "Page Builder" name.', 'fl-builder' ), FLBuilderModel::get_branding() ) . '</span>';
|
130 |
}
|
131 |
|
@@ -432,12 +465,6 @@ final class FLBuilderAdminSettings {
|
|
432 |
$enabled_icons = array_map( 'sanitize_text_field', $_POST['fl-enabled-icons'] );
|
433 |
}
|
434 |
|
435 |
-
// we cant have fa4 and fa5 active at same time.
|
436 |
-
if ( in_array( 'font-awesome', $enabled_icons ) && (bool) array_intersect( array( 'font-awesome-5-brands', 'font-awesome-5-regular', 'font-awesome-5-solid' ), $enabled_icons ) ) {
|
437 |
-
self::add_error( __( 'Use either Font Awesome 4 or Font Awesome 5. They are not compatible. Modules already in use will continue to use Font Awesome 4 regardless of your choice here.', 'fl-builder' ) );
|
438 |
-
return;
|
439 |
-
}
|
440 |
-
|
441 |
// Update the enabled sets.
|
442 |
self::update_enabled_icons( $enabled_icons );
|
443 |
|
@@ -482,6 +509,7 @@ final class FLBuilderAdminSettings {
|
|
482 |
|
483 |
// unzip returned a WP_Error
|
484 |
if ( is_wp_error( $unzipped ) ) {
|
|
|
485 |
self::add_error( sprintf( __( 'Unzip Error: %s', 'fl-builder' ), $unzipped->get_error_message() ) );
|
486 |
return;
|
487 |
}
|
@@ -721,6 +749,7 @@ final class FLBuilderAdminSettings {
|
|
721 |
|
722 |
$wporg = '<a target="_blank" href="https://wordpress.org/plugins/beaver-builder-lite-version/">wordpress.org</a>';
|
723 |
|
|
|
724 |
return sprintf( __( 'Add your %1$s on %2$s to spread the love.', 'fl-builder' ), $stars, $wporg );
|
725 |
}
|
726 |
}
|
23 |
* @return void
|
24 |
*/
|
25 |
static public function init() {
|
26 |
+
add_action( 'init', __CLASS__ . '::init_hooks', 11 );
|
27 |
+
add_action( 'wp_ajax_fl_welcome_submit', array( 'FLBuilderAdminSettings', 'welcome_submit' ) );
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* AJAX callback for welcome email subscription form.
|
32 |
+
* @since 2.2.2
|
33 |
+
*/
|
34 |
+
static public function welcome_submit() {
|
35 |
+
|
36 |
+
if ( ! empty( $_POST ) && wp_verify_nonce( $_POST['_wpnonce'], 'welcome_submit' ) ) {
|
37 |
+
|
38 |
+
$url = 'http://services.wpbeaverbuilder.com/drip/subscribe.php';
|
39 |
+
|
40 |
+
$url = add_query_arg( array(
|
41 |
+
'name' => $_POST['name'],
|
42 |
+
'email' => $_POST['email'],
|
43 |
+
), $url );
|
44 |
+
|
45 |
+
$response = wp_remote_get( $url );
|
46 |
+
$body = $response['body'];
|
47 |
+
if ( '1' === $body ) {
|
48 |
+
$args = array(
|
49 |
+
'message' => __( 'Thank you!', 'fl-builder' ),
|
50 |
+
);
|
51 |
+
update_user_meta( get_current_user_id(), '_fl_welcome_subscribed', '1' );
|
52 |
+
wp_send_json_success( $args );
|
53 |
+
}
|
54 |
+
} else {
|
55 |
+
$args = array(
|
56 |
+
'message' => __( 'Error submitting.', 'fl-builder' ),
|
57 |
+
);
|
58 |
+
wp_send_json_error( $args );
|
59 |
+
}
|
60 |
}
|
61 |
|
62 |
/**
|
158 |
if ( ! empty( $icon ) ) {
|
159 |
echo '<img role="presentation" src="' . $icon . '" />';
|
160 |
}
|
161 |
+
/* translators: %s: builder branded name */
|
162 |
echo '<span>' . sprintf( _x( '%s Settings', '%s stands for custom branded "Page Builder" name.', 'fl-builder' ), FLBuilderModel::get_branding() ) . '</span>';
|
163 |
}
|
164 |
|
465 |
$enabled_icons = array_map( 'sanitize_text_field', $_POST['fl-enabled-icons'] );
|
466 |
}
|
467 |
|
|
|
|
|
|
|
|
|
|
|
|
|
468 |
// Update the enabled sets.
|
469 |
self::update_enabled_icons( $enabled_icons );
|
470 |
|
509 |
|
510 |
// unzip returned a WP_Error
|
511 |
if ( is_wp_error( $unzipped ) ) {
|
512 |
+
/* translators: %s: unzip error message */
|
513 |
self::add_error( sprintf( __( 'Unzip Error: %s', 'fl-builder' ), $unzipped->get_error_message() ) );
|
514 |
return;
|
515 |
}
|
749 |
|
750 |
$wporg = '<a target="_blank" href="https://wordpress.org/plugins/beaver-builder-lite-version/">wordpress.org</a>';
|
751 |
|
752 |
+
/* translators: 1: stars link: 2: link to wporg page */
|
753 |
return sprintf( __( 'Add your %1$s on %2$s to spread the love.', 'fl-builder' ), $stars, $wporg );
|
754 |
}
|
755 |
}
|
classes/class-fl-builder-admin.php
CHANGED
@@ -59,6 +59,7 @@ final class FLBuilderAdmin {
|
|
59 |
'utm_source' => 'plugins-admin-page',
|
60 |
'utm_campaign' => 'no-multisite-support',
|
61 |
) );
|
|
|
62 |
self::show_activate_error( sprintf( __( 'This version of the <strong>Page Builder</strong> plugin is not compatible with WordPress Multisite. <a%s>Please upgrade</a> to the Multisite version of this plugin.', 'fl-builder' ), ' href="' . $url . '" target="_blank"' ) );
|
63 |
}
|
64 |
|
@@ -123,7 +124,7 @@ final class FLBuilderAdmin {
|
|
123 |
$folder = rtrim( FLBuilderModel::plugin_basename(), '/fl-builder.php' );
|
124 |
|
125 |
if ( 'bb-plugin' != $folder ) {
|
126 |
-
|
127 |
$error = sprintf( __( 'Install Error! We detected that Beaver Builder appears to be installed in a folder called <kbd>%s</kbd>.<br />For automatic updates to work the plugin must be installed in the folder <kbd>bb-plugin</kbd>.', 'fl-builder' ), $folder );
|
128 |
FLBuilderAdminSettings::add_error( $error );
|
129 |
}
|
@@ -180,10 +181,12 @@ final class FLBuilderAdmin {
|
|
180 |
*/
|
181 |
static public function activate_notice() {
|
182 |
if ( FL_BUILDER_LITE !== true ) {
|
183 |
-
$hash
|
|
|
184 |
$message = __( 'Page Builder activated! <a%s>Click here</a> to enable remote updates.', 'fl-builder' );
|
185 |
} else {
|
186 |
-
$hash
|
|
|
187 |
$message = __( 'Page Builder activated! <a%s>Click here</a> to get started.', 'fl-builder' );
|
188 |
}
|
189 |
|
59 |
'utm_source' => 'plugins-admin-page',
|
60 |
'utm_campaign' => 'no-multisite-support',
|
61 |
) );
|
62 |
+
/* translators: %s: upgrade url */
|
63 |
self::show_activate_error( sprintf( __( 'This version of the <strong>Page Builder</strong> plugin is not compatible with WordPress Multisite. <a%s>Please upgrade</a> to the Multisite version of this plugin.', 'fl-builder' ), ' href="' . $url . '" target="_blank"' ) );
|
64 |
}
|
65 |
|
124 |
$folder = rtrim( FLBuilderModel::plugin_basename(), '/fl-builder.php' );
|
125 |
|
126 |
if ( 'bb-plugin' != $folder ) {
|
127 |
+
/* translators: %s: folder path */
|
128 |
$error = sprintf( __( 'Install Error! We detected that Beaver Builder appears to be installed in a folder called <kbd>%s</kbd>.<br />For automatic updates to work the plugin must be installed in the folder <kbd>bb-plugin</kbd>.', 'fl-builder' ), $folder );
|
129 |
FLBuilderAdminSettings::add_error( $error );
|
130 |
}
|
181 |
*/
|
182 |
static public function activate_notice() {
|
183 |
if ( FL_BUILDER_LITE !== true ) {
|
184 |
+
$hash = '#license';
|
185 |
+
/* translators: %s: link to licence page */
|
186 |
$message = __( 'Page Builder activated! <a%s>Click here</a> to enable remote updates.', 'fl-builder' );
|
187 |
} else {
|
188 |
+
$hash = '#welcome';
|
189 |
+
/* translators: %s: link to welcome page */
|
190 |
$message = __( 'Page Builder activated! <a%s>Click here</a> to get started.', 'fl-builder' );
|
191 |
}
|
192 |
|
classes/class-fl-builder-art.php
CHANGED
@@ -337,6 +337,7 @@ class FLBuilderArt {
|
|
337 |
|
338 |
// Preset & Shape Section
|
339 |
$sections[ $prefix . 'shape' ] = array(
|
|
|
340 |
'title' => sprintf( __( '%s Shape', 'fl-builder' ), $position_label ),
|
341 |
'fields' => array(
|
342 |
$prefix . 'shape' => array(
|
@@ -463,6 +464,7 @@ class FLBuilderArt {
|
|
463 |
|
464 |
// Shape Styles
|
465 |
$sections[ $prefix . 'style' ] = array(
|
|
|
466 |
'title' => sprintf( __( '%s Shape Style', 'fl-builder' ), $position_label ),
|
467 |
'fields' => array(
|
468 |
$prefix . 'fill_style' => array(
|
337 |
|
338 |
// Preset & Shape Section
|
339 |
$sections[ $prefix . 'shape' ] = array(
|
340 |
+
/* translators: %s: position label */
|
341 |
'title' => sprintf( __( '%s Shape', 'fl-builder' ), $position_label ),
|
342 |
'fields' => array(
|
343 |
$prefix . 'shape' => array(
|
464 |
|
465 |
// Shape Styles
|
466 |
$sections[ $prefix . 'style' ] = array(
|
467 |
+
/* translators: %s: position label */
|
468 |
'title' => sprintf( __( '%s Shape Style', 'fl-builder' ), $position_label ),
|
469 |
'fields' => array(
|
470 |
$prefix . 'fill_style' => array(
|
classes/class-fl-builder-css.php
CHANGED
@@ -285,10 +285,13 @@ final class FLBuilderCSS {
|
|
285 |
static public function typography_field_props( $setting = array() ) {
|
286 |
$props = array();
|
287 |
$settings = FLBuilderModel::get_global_settings();
|
288 |
-
|
289 |
if ( isset( $setting['font_family'] ) && 'Default' !== $setting['font_family'] ) {
|
290 |
-
$fallback
|
291 |
-
|
|
|
|
|
|
|
292 |
}
|
293 |
if ( isset( $setting['font_weight'] ) && 'i' == substr( $setting['font_weight'], -1 ) ) {
|
294 |
$props['font-weight'] = substr( $setting['font_weight'], 0, -1 );
|
@@ -340,8 +343,15 @@ final class FLBuilderCSS {
|
|
340 |
* @return void
|
341 |
*/
|
342 |
static public function render() {
|
343 |
-
$rendered
|
344 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
345 |
|
346 |
foreach ( self::$rules as $args ) {
|
347 |
$defaults = array(
|
285 |
static public function typography_field_props( $setting = array() ) {
|
286 |
$props = array();
|
287 |
$settings = FLBuilderModel::get_global_settings();
|
288 |
+
$pattern = '%s, %s';
|
289 |
if ( isset( $setting['font_family'] ) && 'Default' !== $setting['font_family'] ) {
|
290 |
+
$fallback = FLBuilderFonts::get_font_fallback( $setting['font_family'] );
|
291 |
+
if ( preg_match( '#[0-9]#', $setting['font_family'] ) ) {
|
292 |
+
$pattern = '"%s", %s';
|
293 |
+
}
|
294 |
+
$props['font-family'] = sprintf( $pattern, $setting['font_family'], $fallback );
|
295 |
}
|
296 |
if ( isset( $setting['font_weight'] ) && 'i' == substr( $setting['font_weight'], -1 ) ) {
|
297 |
$props['font-weight'] = substr( $setting['font_weight'], 0, -1 );
|
343 |
* @return void
|
344 |
*/
|
345 |
static public function render() {
|
346 |
+
$rendered = array();
|
347 |
+
$breakpoints = array( 'default', 'medium', 'responsive' );
|
348 |
+
$css = '';
|
349 |
+
|
350 |
+
// Setup system breakpoints here to ensure proper order.
|
351 |
+
foreach ( $breakpoints as $breakpoint ) {
|
352 |
+
$media = self::media_value( $breakpoint );
|
353 |
+
$rendered[ $media ] = array();
|
354 |
+
}
|
355 |
|
356 |
foreach ( self::$rules as $args ) {
|
357 |
$defaults = array(
|
classes/class-fl-builder-debug.php
CHANGED
@@ -158,6 +158,31 @@ final class FL_Debug {
|
|
158 |
);
|
159 |
self::register( 'wp_max_mem', $args );
|
160 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
$args = array(
|
162 |
'name' => 'Themes',
|
163 |
'data' => self::divider(),
|
158 |
);
|
159 |
self::register( 'wp_max_mem', $args );
|
160 |
|
161 |
+
$args = array(
|
162 |
+
'name' => 'Post Counts',
|
163 |
+
'data' => self::divider(),
|
164 |
+
);
|
165 |
+
self::register( 'post_counts', $args );
|
166 |
+
|
167 |
+
$templates = wp_count_posts( 'fl-builder-template' );
|
168 |
+
|
169 |
+
$post_types = get_post_types( null, 'object' );
|
170 |
+
|
171 |
+
foreach ( $post_types as $type => $type_object ) {
|
172 |
+
|
173 |
+
if ( in_array( $type, array( 'wp_block', 'user_request', 'oembed_cache', 'customize_changeset', 'custom_css', 'nav_menu_item' ) ) ) {
|
174 |
+
continue;
|
175 |
+
}
|
176 |
+
|
177 |
+
$count = wp_count_posts( $type );
|
178 |
+
|
179 |
+
$args = array(
|
180 |
+
'name' => ( 'fl-builder-template' == $type ) ? 'Builder Templates' : 'WordPress ' . $type_object->label,
|
181 |
+
'data' => ( $count->inherit > 0 ) ? $count->inherit : $count->publish,
|
182 |
+
);
|
183 |
+
self::register( 'wp_type_count_' . $type, $args );
|
184 |
+
}
|
185 |
+
|
186 |
$args = array(
|
187 |
'name' => 'Themes',
|
188 |
'data' => self::divider(),
|
classes/class-fl-builder-icons.php
CHANGED
@@ -130,10 +130,6 @@ final class FLBuilderIcons {
|
|
130 |
static private function register_core_sets() {
|
131 |
$enabled_icons = FLBuilderModel::get_enabled_icons();
|
132 |
$core_sets = apply_filters( 'fl_builder_core_icon_sets', array(
|
133 |
-
'font-awesome' => array(
|
134 |
-
'name' => 'Font Awesome 4',
|
135 |
-
'prefix' => 'fa',
|
136 |
-
),
|
137 |
'font-awesome-5-solid' => array(
|
138 |
'name' => 'Font Awesome 5 Solid',
|
139 |
'prefix' => 'fas',
|
130 |
static private function register_core_sets() {
|
131 |
$enabled_icons = FLBuilderModel::get_enabled_icons();
|
132 |
$core_sets = apply_filters( 'fl_builder_core_icon_sets', array(
|
|
|
|
|
|
|
|
|
133 |
'font-awesome-5-solid' => array(
|
134 |
'name' => 'Font Awesome 5 Solid',
|
135 |
'prefix' => 'fas',
|
classes/class-fl-builder-loader.php
CHANGED
@@ -46,7 +46,7 @@ if ( ! class_exists( 'FLBuilderLoader' ) ) {
|
|
46 |
* @return void
|
47 |
*/
|
48 |
static private function define_constants() {
|
49 |
-
define( 'FL_BUILDER_VERSION', '2.2.
|
50 |
define( 'FL_BUILDER_FILE', trailingslashit( dirname( dirname( __FILE__ ) ) ) . 'fl-builder.php' );
|
51 |
define( 'FL_BUILDER_DIR', plugin_dir_path( FL_BUILDER_FILE ) );
|
52 |
define( 'FL_BUILDER_URL', plugins_url( '/', FL_BUILDER_FILE ) );
|
@@ -166,6 +166,7 @@ if ( ! class_exists( 'FLBuilderLoader' ) ) {
|
|
166 |
* @return void
|
167 |
*/
|
168 |
static public function double_install_admin_notice() {
|
|
|
169 |
$message = __( 'You currently have two versions of Beaver Builder active on this site. Please <a href="%s">deactivate one</a> before continuing.', 'fl-builder' );
|
170 |
|
171 |
self::render_admin_notice( sprintf( $message, admin_url( 'plugins.php' ) ), 'error' );
|
46 |
* @return void
|
47 |
*/
|
48 |
static private function define_constants() {
|
49 |
+
define( 'FL_BUILDER_VERSION', '2.2.2.5' );
|
50 |
define( 'FL_BUILDER_FILE', trailingslashit( dirname( dirname( __FILE__ ) ) ) . 'fl-builder.php' );
|
51 |
define( 'FL_BUILDER_DIR', plugin_dir_path( FL_BUILDER_FILE ) );
|
52 |
define( 'FL_BUILDER_URL', plugins_url( '/', FL_BUILDER_FILE ) );
|
166 |
* @return void
|
167 |
*/
|
168 |
static public function double_install_admin_notice() {
|
169 |
+
/* translators: %s: plugins page link */
|
170 |
$message = __( 'You currently have two versions of Beaver Builder active on this site. Please <a href="%s">deactivate one</a> before continuing.', 'fl-builder' );
|
171 |
|
172 |
self::render_admin_notice( sprintf( $message, admin_url( 'plugins.php' ) ), 'error' );
|
classes/class-fl-builder-model.php
CHANGED
@@ -2752,6 +2752,7 @@ final class FLBuilderModel {
|
|
2752 |
|
2753 |
// Log an error if a module with this slug already exists.
|
2754 |
if ( isset( self::$modules[ $instance->slug ] ) ) {
|
|
|
2755 |
error_log( sprintf( _x( 'A module with the filename %s.php already exists! Please namespace your module filenames to ensure compatibility with Beaver Builder.', '%s stands for the module filename', 'fl-builder' ), $instance->slug ) );
|
2756 |
return;
|
2757 |
}
|
@@ -2787,6 +2788,7 @@ final class FLBuilderModel {
|
|
2787 |
*/
|
2788 |
static public function register_module_alias( $alias, $config ) {
|
2789 |
if ( isset( self::$module_aliases[ $alias ] ) ) {
|
|
|
2790 |
_doing_it_wrong( __CLASS__ . '::register_module_alias', sprintf( _x( 'The module alias %s already exists! Please namespace your module aliases to ensure compatibility with Beaver Builder.', '%s stands for the module alias key', 'fl-builder' ), $alias ), '1.10' );
|
2791 |
return;
|
2792 |
}
|
@@ -4045,6 +4047,9 @@ final class FLBuilderModel {
|
|
4045 |
*/
|
4046 |
static public function save_global_settings( $settings = array() ) {
|
4047 |
$old_settings = self::get_global_settings();
|
|
|
|
|
|
|
4048 |
$new_settings = (object) array_merge( (array) $old_settings, (array) $settings );
|
4049 |
|
4050 |
self::delete_asset_cache_for_all_posts();
|
@@ -4055,6 +4060,24 @@ final class FLBuilderModel {
|
|
4055 |
return self::get_global_settings();
|
4056 |
}
|
4057 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4058 |
/**
|
4059 |
* Duplicate the current post.
|
4060 |
*
|
@@ -4080,6 +4103,7 @@ final class FLBuilderModel {
|
|
4080 |
'post_parent' => $post->post_parent,
|
4081 |
'post_password' => $post->post_password,
|
4082 |
'post_status' => 'draft',
|
|
|
4083 |
'post_title' => sprintf( _x( 'Copy of %s', '%s stands for post/page title.', 'fl-builder' ), $post->post_title ),
|
4084 |
'post_type' => $post->post_type,
|
4085 |
'to_ping' => $post->to_ping,
|
@@ -5563,9 +5587,11 @@ final class FLBuilderModel {
|
|
5563 |
|
5564 |
// Remove template info from the layout data.
|
5565 |
foreach ( $layout_data as $node_id => $node ) {
|
5566 |
-
|
5567 |
-
|
5568 |
-
|
|
|
|
|
5569 |
}
|
5570 |
|
5571 |
// Update the layout data.
|
@@ -6344,7 +6370,7 @@ final class FLBuilderModel {
|
|
6344 |
'enabled' => true,
|
6345 |
'tour' => true,
|
6346 |
'video' => true,
|
6347 |
-
'video_embed' => '<iframe src="https://player.vimeo.com/video/240550556?autoplay=1" width="420" height="315"
|
6348 |
'knowledge_base' => true,
|
6349 |
'knowledge_base_url' => self::get_store_url( 'knowledge-base', array(
|
6350 |
'utm_medium' => ( true === FL_BUILDER_LITE ? 'bb-lite' : 'bb-pro' ),
|
2752 |
|
2753 |
// Log an error if a module with this slug already exists.
|
2754 |
if ( isset( self::$modules[ $instance->slug ] ) ) {
|
2755 |
+
/* translators: %s: module filename */
|
2756 |
error_log( sprintf( _x( 'A module with the filename %s.php already exists! Please namespace your module filenames to ensure compatibility with Beaver Builder.', '%s stands for the module filename', 'fl-builder' ), $instance->slug ) );
|
2757 |
return;
|
2758 |
}
|
2788 |
*/
|
2789 |
static public function register_module_alias( $alias, $config ) {
|
2790 |
if ( isset( self::$module_aliases[ $alias ] ) ) {
|
2791 |
+
/* translators: %s: module alias key */
|
2792 |
_doing_it_wrong( __CLASS__ . '::register_module_alias', sprintf( _x( 'The module alias %s already exists! Please namespace your module aliases to ensure compatibility with Beaver Builder.', '%s stands for the module alias key', 'fl-builder' ), $alias ), '1.10' );
|
2793 |
return;
|
2794 |
}
|
4047 |
*/
|
4048 |
static public function save_global_settings( $settings = array() ) {
|
4049 |
$old_settings = self::get_global_settings();
|
4050 |
+
|
4051 |
+
$settings = self::sanitize_global( $settings );
|
4052 |
+
|
4053 |
$new_settings = (object) array_merge( (array) $old_settings, (array) $settings );
|
4054 |
|
4055 |
self::delete_asset_cache_for_all_posts();
|
4060 |
return self::get_global_settings();
|
4061 |
}
|
4062 |
|
4063 |
+
/**
|
4064 |
+
* Sanitize global options on save.
|
4065 |
+
* @since 2.2.2
|
4066 |
+
*/
|
4067 |
+
static public function sanitize_global( $settings ) {
|
4068 |
+
|
4069 |
+
$fields = self::get_settings_form_fields( 'global', 'general' );
|
4070 |
+
|
4071 |
+
foreach ( $settings as $name => $value ) {
|
4072 |
+
if ( ! isset( $fields[ $name ] ) ) {
|
4073 |
+
continue;
|
4074 |
+
} elseif ( isset( $fields[ $name ]['sanitize'] ) ) {
|
4075 |
+
$settings[ $name ] = call_user_func_array( $fields[ $name ]['sanitize'], array( $value ) );
|
4076 |
+
}
|
4077 |
+
}
|
4078 |
+
return $settings;
|
4079 |
+
}
|
4080 |
+
|
4081 |
/**
|
4082 |
* Duplicate the current post.
|
4083 |
*
|
4103 |
'post_parent' => $post->post_parent,
|
4104 |
'post_password' => $post->post_password,
|
4105 |
'post_status' => 'draft',
|
4106 |
+
/* translators: %s: post/page title */
|
4107 |
'post_title' => sprintf( _x( 'Copy of %s', '%s stands for post/page title.', 'fl-builder' ), $post->post_title ),
|
4108 |
'post_type' => $post->post_type,
|
4109 |
'to_ping' => $post->to_ping,
|
5587 |
|
5588 |
// Remove template info from the layout data.
|
5589 |
foreach ( $layout_data as $node_id => $node ) {
|
5590 |
+
if ( isset( $node->template_id ) && $node->template_id == $template_id ) {
|
5591 |
+
unset( $layout_data[ $node_id ]->template_id );
|
5592 |
+
unset( $layout_data[ $node_id ]->template_node_id );
|
5593 |
+
unset( $layout_data[ $node_id ]->template_root_node );
|
5594 |
+
}
|
5595 |
}
|
5596 |
|
5597 |
// Update the layout data.
|
6370 |
'enabled' => true,
|
6371 |
'tour' => true,
|
6372 |
'video' => true,
|
6373 |
+
'video_embed' => '<iframe src="https://player.vimeo.com/video/240550556?autoplay=1" width="420" height="315" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>',
|
6374 |
'knowledge_base' => true,
|
6375 |
'knowledge_base_url' => self::get_store_url( 'knowledge-base', array(
|
6376 |
'utm_medium' => ( true === FL_BUILDER_LITE ? 'bb-lite' : 'bb-pro' ),
|
classes/class-fl-builder-revisions.php
CHANGED
@@ -26,8 +26,8 @@ final class FLBuilderRevisions {
|
|
26 |
* @return array
|
27 |
*/
|
28 |
static public function ui_js_config( $config ) {
|
29 |
-
$config['revisions']
|
30 |
-
|
31 |
return $config;
|
32 |
}
|
33 |
|
@@ -138,10 +138,12 @@ final class FLBuilderRevisions {
|
|
138 |
$data = FLBuilderModel::get_layout_data( 'published', $revision_id );
|
139 |
|
140 |
FLBuilderModel::update_layout_data( $data );
|
141 |
-
|
|
|
142 |
return array(
|
143 |
-
'layout'
|
144 |
-
'config'
|
|
|
145 |
);
|
146 |
}
|
147 |
}
|
26 |
* @return array
|
27 |
*/
|
28 |
static public function ui_js_config( $config ) {
|
29 |
+
$config['revisions'] = self::get_config( $config['postId'] );
|
30 |
+
$config['revisions_count'] = isset( $config['revisions']['posts'] ) && is_array( $config['revisions']['posts'] ) ? count( $config['revisions']['posts'] ) : 0;
|
31 |
return $config;
|
32 |
}
|
33 |
|
138 |
$data = FLBuilderModel::get_layout_data( 'published', $revision_id );
|
139 |
|
140 |
FLBuilderModel::update_layout_data( $data );
|
141 |
+
$settings = get_post_meta( $revision_id, '_fl_builder_data_settings', true );
|
142 |
+
update_post_meta( FLBuilderModel::get_post_id(), '_fl_builder_draft_settings', $settings );
|
143 |
return array(
|
144 |
+
'layout' => FLBuilderAJAXLayout::render(),
|
145 |
+
'config' => FLBuilderUISettingsForms::get_node_js_config(),
|
146 |
+
'settings' => $settings,
|
147 |
);
|
148 |
}
|
149 |
}
|
classes/class-fl-builder-service-aweber.php
CHANGED
@@ -116,6 +116,7 @@ final class FLBuilderServiceAWeber extends FLBuilderService {
|
|
116 |
'class' => 'fl-builder-service-connect-input',
|
117 |
'type' => 'text',
|
118 |
'label' => __( 'Authorization Code', 'fl-builder' ),
|
|
|
119 |
'description' => sprintf( __( 'Please register this website with AWeber to get your Authorization Code. <a%s>Register Now</a>', 'fl-builder' ), ' href="https://auth.aweber.com/1.0/oauth/authorize_app/baa1f131" target="_blank"' ),
|
120 |
'preview' => array(
|
121 |
'type' => 'none',
|
@@ -283,6 +284,7 @@ final class FLBuilderServiceAWeber extends FLBuilderService {
|
|
283 |
}
|
284 |
} catch ( AWeberAPIException $e ) {
|
285 |
$response['error'] = sprintf(
|
|
|
286 |
__( 'There was an error subscribing to AWeber. %s', 'fl-builder' ),
|
287 |
$e->getMessage()
|
288 |
);
|
@@ -301,6 +303,7 @@ final class FLBuilderServiceAWeber extends FLBuilderService {
|
|
301 |
}
|
302 |
} catch ( AWeberAPIException $e ) {
|
303 |
$response['error'] = sprintf(
|
|
|
304 |
__( 'There was an error subscribing to AWeber. %s', 'fl-builder' ),
|
305 |
$e->getMessage()
|
306 |
);
|
116 |
'class' => 'fl-builder-service-connect-input',
|
117 |
'type' => 'text',
|
118 |
'label' => __( 'Authorization Code', 'fl-builder' ),
|
119 |
+
/* translators: %s: register url */
|
120 |
'description' => sprintf( __( 'Please register this website with AWeber to get your Authorization Code. <a%s>Register Now</a>', 'fl-builder' ), ' href="https://auth.aweber.com/1.0/oauth/authorize_app/baa1f131" target="_blank"' ),
|
121 |
'preview' => array(
|
122 |
'type' => 'none',
|
284 |
}
|
285 |
} catch ( AWeberAPIException $e ) {
|
286 |
$response['error'] = sprintf(
|
287 |
+
/* translators: %s: error */
|
288 |
__( 'There was an error subscribing to AWeber. %s', 'fl-builder' ),
|
289 |
$e->getMessage()
|
290 |
);
|
303 |
}
|
304 |
} catch ( AWeberAPIException $e ) {
|
305 |
$response['error'] = sprintf(
|
306 |
+
/* translators: %s: error */
|
307 |
__( 'There was an error subscribing to AWeber. %s', 'fl-builder' ),
|
308 |
$e->getMessage()
|
309 |
);
|
classes/class-fl-builder-service-campayn.php
CHANGED
@@ -108,6 +108,7 @@ final class FLBuilderServiceCampayn extends FLBuilderService {
|
|
108 |
'api_key' => $fields['api_key'],
|
109 |
);
|
110 |
} else {
|
|
|
111 |
$response['error'] = sprintf( __( 'Error: Could not connect to Campayn. %s', 'fl-builder' ), $result['error'] );
|
112 |
}
|
113 |
}
|
@@ -170,6 +171,7 @@ final class FLBuilderServiceCampayn extends FLBuilderService {
|
|
170 |
);
|
171 |
|
172 |
if ( isset( $results['error'] ) ) {
|
|
|
173 |
$response['error'] = sprintf( __( 'Error: Please check your API key. %s', 'fl-builder' ), $results['error'] );
|
174 |
} else {
|
175 |
$response['html'] = $this->render_list_field( $results, $settings );
|
@@ -278,6 +280,7 @@ final class FLBuilderServiceCampayn extends FLBuilderService {
|
|
278 |
) );
|
279 |
|
280 |
if ( isset( $result['error'] ) ) {
|
|
|
281 |
$response['error'] = sprintf( __( 'There was an error subscribing to Campayn. %s', 'fl-builder' ), $result['error'] );
|
282 |
}
|
283 |
}
|
108 |
'api_key' => $fields['api_key'],
|
109 |
);
|
110 |
} else {
|
111 |
+
/* translators: %s: error */
|
112 |
$response['error'] = sprintf( __( 'Error: Could not connect to Campayn. %s', 'fl-builder' ), $result['error'] );
|
113 |
}
|
114 |
}
|
171 |
);
|
172 |
|
173 |
if ( isset( $results['error'] ) ) {
|
174 |
+
/* translators: %s: error */
|
175 |
$response['error'] = sprintf( __( 'Error: Please check your API key. %s', 'fl-builder' ), $results['error'] );
|
176 |
} else {
|
177 |
$response['html'] = $this->render_list_field( $results, $settings );
|
280 |
) );
|
281 |
|
282 |
if ( isset( $result['error'] ) ) {
|
283 |
+
/* translators: %s: error */
|
284 |
$response['error'] = sprintf( __( 'There was an error subscribing to Campayn. %s', 'fl-builder' ), $result['error'] );
|
285 |
}
|
286 |
}
|
classes/class-fl-builder-service-constant-contact.php
CHANGED
@@ -53,6 +53,7 @@ final class FLBuilderServiceConstantContact extends FLBuilderService {
|
|
53 |
$request = json_decode( wp_remote_retrieve_body( wp_remote_get( $url ) ) );
|
54 |
|
55 |
if ( ! is_array( $request ) || ( isset( $request[0] ) && isset( $request[0]->error_message ) ) ) {
|
|
|
56 |
$response['error'] = sprintf( __( 'Error: Could not connect to Constant Contact. %s', 'fl-builder' ), $request[0]->error_message );
|
57 |
} else {
|
58 |
$response['data'] = array(
|
@@ -91,6 +92,7 @@ final class FLBuilderServiceConstantContact extends FLBuilderService {
|
|
91 |
'type' => 'text',
|
92 |
'label' => __( 'Access Token', 'fl-builder' ),
|
93 |
'help' => __( 'Your Constant Contact access token.', 'fl-builder' ),
|
|
|
94 |
'description' => sprintf( __( 'You must register a <a%1$s>Developer Account</a> with Constant Contact to obtain an API key and access token. Please see <a%2$s>Getting an API key</a> for complete instructions.', 'fl-builder' ), ' href="https://constantcontact.mashery.com/member/register" target="_blank"', ' href="https://developer.constantcontact.com/home/api-keys.html" target="_blank"' ),
|
95 |
'preview' => array(
|
96 |
'type' => 'none',
|
@@ -123,6 +125,7 @@ final class FLBuilderServiceConstantContact extends FLBuilderService {
|
|
123 |
);
|
124 |
|
125 |
if ( ! is_array( $request ) || ( isset( $request[0] ) && isset( $request[0]->error_message ) ) ) {
|
|
|
126 |
$response['error'] = sprintf( __( 'Error: Could not connect to Constant Contact. %s', 'fl-builder' ), $request[0]->error_message );
|
127 |
} else {
|
128 |
$response['html'] = $this->render_list_field( $request, $settings );
|
@@ -233,6 +236,7 @@ final class FLBuilderServiceConstantContact extends FLBuilderService {
|
|
233 |
$res = json_decode( wp_remote_retrieve_body( $update ) );
|
234 |
|
235 |
if ( isset( $res->error_key ) ) {
|
|
|
236 |
$response['error'] = sprintf( __( 'There was an error subscribing to Constant Contact. %s', 'fl-builder' ), $res->error_key );
|
237 |
}
|
238 |
} else {
|
@@ -265,6 +269,7 @@ final class FLBuilderServiceConstantContact extends FLBuilderService {
|
|
265 |
$create = wp_remote_post( $url, $args );
|
266 |
|
267 |
if ( isset( $create->error_key ) ) {
|
|
|
268 |
$response['error'] = sprintf( __( 'There was an error subscribing to Constant Contact. %s', 'fl-builder' ), $create->error_key );
|
269 |
}
|
270 |
}
|
53 |
$request = json_decode( wp_remote_retrieve_body( wp_remote_get( $url ) ) );
|
54 |
|
55 |
if ( ! is_array( $request ) || ( isset( $request[0] ) && isset( $request[0]->error_message ) ) ) {
|
56 |
+
/* translators: %s: error */
|
57 |
$response['error'] = sprintf( __( 'Error: Could not connect to Constant Contact. %s', 'fl-builder' ), $request[0]->error_message );
|
58 |
} else {
|
59 |
$response['data'] = array(
|
92 |
'type' => 'text',
|
93 |
'label' => __( 'Access Token', 'fl-builder' ),
|
94 |
'help' => __( 'Your Constant Contact access token.', 'fl-builder' ),
|
95 |
+
/* translators: 1: account link: 2: api key link */
|
96 |
'description' => sprintf( __( 'You must register a <a%1$s>Developer Account</a> with Constant Contact to obtain an API key and access token. Please see <a%2$s>Getting an API key</a> for complete instructions.', 'fl-builder' ), ' href="https://constantcontact.mashery.com/member/register" target="_blank"', ' href="https://developer.constantcontact.com/home/api-keys.html" target="_blank"' ),
|
97 |
'preview' => array(
|
98 |
'type' => 'none',
|
125 |
);
|
126 |
|
127 |
if ( ! is_array( $request ) || ( isset( $request[0] ) && isset( $request[0]->error_message ) ) ) {
|
128 |
+
/* translators: %s: error */
|
129 |
$response['error'] = sprintf( __( 'Error: Could not connect to Constant Contact. %s', 'fl-builder' ), $request[0]->error_message );
|
130 |
} else {
|
131 |
$response['html'] = $this->render_list_field( $request, $settings );
|
236 |
$res = json_decode( wp_remote_retrieve_body( $update ) );
|
237 |
|
238 |
if ( isset( $res->error_key ) ) {
|
239 |
+
/* translators: %s: error */
|
240 |
$response['error'] = sprintf( __( 'There was an error subscribing to Constant Contact. %s', 'fl-builder' ), $res->error_key );
|
241 |
}
|
242 |
} else {
|
269 |
$create = wp_remote_post( $url, $args );
|
270 |
|
271 |
if ( isset( $create->error_key ) ) {
|
272 |
+
/* translators: %s: error */
|
273 |
$response['error'] = sprintf( __( 'There was an error subscribing to Constant Contact. %s', 'fl-builder' ), $create->error_key );
|
274 |
}
|
275 |
}
|
classes/class-fl-builder-service-convertkit.php
CHANGED
@@ -72,6 +72,7 @@ final class FLBuilderServiceConvertKit extends FLBuilderService {
|
|
72 |
'api_key' => $fields['api_key'],
|
73 |
);
|
74 |
} else {
|
|
|
75 |
$response['error'] = sprintf( __( 'Error: Please check your API key. %s', 'fl-builder' ), $api::$response['error_message'] );
|
76 |
}
|
77 |
}
|
@@ -202,6 +203,7 @@ final class FLBuilderServiceConvertKit extends FLBuilderService {
|
|
202 |
if ( isset( $result->error ) ) {
|
203 |
$message = isset( $result->message ) ? $result->message : '';
|
204 |
$response['error'] = sprintf(
|
|
|
205 |
__( 'There was an error subscribing to ConvertKit. Error: %s', 'fl-builder' ),
|
206 |
$message
|
207 |
);
|
72 |
'api_key' => $fields['api_key'],
|
73 |
);
|
74 |
} else {
|
75 |
+
/* translators: %s: error */
|
76 |
$response['error'] = sprintf( __( 'Error: Please check your API key. %s', 'fl-builder' ), $api::$response['error_message'] );
|
77 |
}
|
78 |
}
|
203 |
if ( isset( $result->error ) ) {
|
204 |
$message = isset( $result->message ) ? $result->message : '';
|
205 |
$response['error'] = sprintf(
|
206 |
+
/* translators: %s: error */
|
207 |
__( 'There was an error subscribing to ConvertKit. Error: %s', 'fl-builder' ),
|
208 |
$message
|
209 |
);
|
classes/class-fl-builder-service-drip.php
CHANGED
@@ -84,12 +84,14 @@ final class FLBuilderServiceDrip extends FLBuilderService {
|
|
84 |
}
|
85 |
} catch ( Exception $e ) {
|
86 |
$response['error'] = sprintf(
|
|
|
87 |
__( 'Error: Please check your Account ID. %s', 'fl-builder' ),
|
88 |
$e->getMessage()
|
89 |
);
|
90 |
}
|
91 |
} catch ( Exception $e ) {
|
92 |
$response['error'] = sprintf(
|
|
|
93 |
__( 'Error: Please check your API token. %s', 'fl-builder' ),
|
94 |
$e->getMessage()
|
95 |
);
|
@@ -113,6 +115,7 @@ final class FLBuilderServiceDrip extends FLBuilderService {
|
|
113 |
'class' => 'fl-builder-service-connect-input',
|
114 |
'type' => 'text',
|
115 |
'label' => __( 'API Token', 'fl-builder' ),
|
|
|
116 |
'description' => sprintf( __( 'Your API Token can be found in your Drip account under Settings > My User Settings. Or, you can click this <a%s>direct link</a>.', 'fl-builder' ), ' href="https://www.getdrip.com/user/edit" target="_blank"' ),
|
117 |
'preview' => array(
|
118 |
'type' => 'none',
|
@@ -255,6 +258,7 @@ final class FLBuilderServiceDrip extends FLBuilderService {
|
|
255 |
}
|
256 |
} catch ( Exception $e ) {
|
257 |
$response['error'] = sprintf(
|
|
|
258 |
__( 'There was an error searching contact from Drip. %s', 'fl-builder' ),
|
259 |
$e->getMessage()
|
260 |
);
|
@@ -287,6 +291,7 @@ final class FLBuilderServiceDrip extends FLBuilderService {
|
|
287 |
}
|
288 |
} catch ( Exception $e ) {
|
289 |
$response['error'] = sprintf(
|
|
|
290 |
__( 'There was an error subscribing to Drip. %s', 'fl-builder' ),
|
291 |
$e->getMessage()
|
292 |
);
|
84 |
}
|
85 |
} catch ( Exception $e ) {
|
86 |
$response['error'] = sprintf(
|
87 |
+
/* translators: %s: error */
|
88 |
__( 'Error: Please check your Account ID. %s', 'fl-builder' ),
|
89 |
$e->getMessage()
|
90 |
);
|
91 |
}
|
92 |
} catch ( Exception $e ) {
|
93 |
$response['error'] = sprintf(
|
94 |
+
/* translators: %s: error */
|
95 |
__( 'Error: Please check your API token. %s', 'fl-builder' ),
|
96 |
$e->getMessage()
|
97 |
);
|
115 |
'class' => 'fl-builder-service-connect-input',
|
116 |
'type' => 'text',
|
117 |
'label' => __( 'API Token', 'fl-builder' ),
|
118 |
+
/* translators: %s: api url */
|
119 |
'description' => sprintf( __( 'Your API Token can be found in your Drip account under Settings > My User Settings. Or, you can click this <a%s>direct link</a>.', 'fl-builder' ), ' href="https://www.getdrip.com/user/edit" target="_blank"' ),
|
120 |
'preview' => array(
|
121 |
'type' => 'none',
|
258 |
}
|
259 |
} catch ( Exception $e ) {
|
260 |
$response['error'] = sprintf(
|
261 |
+
/* translators: %s: error */
|
262 |
__( 'There was an error searching contact from Drip. %s', 'fl-builder' ),
|
263 |
$e->getMessage()
|
264 |
);
|
291 |
}
|
292 |
} catch ( Exception $e ) {
|
293 |
$response['error'] = sprintf(
|
294 |
+
/* translators: %s: error */
|
295 |
__( 'There was an error subscribing to Drip. %s', 'fl-builder' ),
|
296 |
$e->getMessage()
|
297 |
);
|
classes/class-fl-builder-service-enormail.php
CHANGED
@@ -77,6 +77,7 @@ final class FLBuilderServiceEnormail extends FLBuilderService {
|
|
77 |
'api_key' => $fields['api_key'],
|
78 |
);
|
79 |
} else {
|
|
|
80 |
$response['error'] = sprintf(__( 'Error: Could not connect to Enormail. %s', 'fl-builder' ),
|
81 |
'(' . $api_response->error->http_code . ': ' . $api_response->error->message . ')'
|
82 |
);
|
@@ -215,6 +216,7 @@ final class FLBuilderServiceEnormail extends FLBuilderService {
|
|
215 |
$get_results = json_decode( $result );
|
216 |
|
217 |
if ( isset( $get_results->status ) && 'error' === $get_results->status ) {
|
|
|
218 |
$response['error'] = sprintf(__( 'There was an error subscribing to Enormail. %s', 'fl-builder' ),
|
219 |
'(' . $get_results->code . ': ' . $get_results->message . ')'
|
220 |
);
|
77 |
'api_key' => $fields['api_key'],
|
78 |
);
|
79 |
} else {
|
80 |
+
/* translators: %s: error */
|
81 |
$response['error'] = sprintf(__( 'Error: Could not connect to Enormail. %s', 'fl-builder' ),
|
82 |
'(' . $api_response->error->http_code . ': ' . $api_response->error->message . ')'
|
83 |
);
|
216 |
$get_results = json_decode( $result );
|
217 |
|
218 |
if ( isset( $get_results->status ) && 'error' === $get_results->status ) {
|
219 |
+
/* translators: %s: error */
|
220 |
$response['error'] = sprintf(__( 'There was an error subscribing to Enormail. %s', 'fl-builder' ),
|
221 |
'(' . $get_results->code . ': ' . $get_results->message . ')'
|
222 |
);
|
classes/class-fl-builder-service-getresponse.php
CHANGED
@@ -243,6 +243,7 @@ final class FLBuilderServiceGetResponse extends FLBuilderService {
|
|
243 |
}
|
244 |
} catch ( Exception $e ) {
|
245 |
$response['error'] = sprintf(
|
|
|
246 |
__( 'There was an error subscribing to GetResponse. %s', 'fl-builder' ),
|
247 |
$e->getMessage()
|
248 |
);
|
243 |
}
|
244 |
} catch ( Exception $e ) {
|
245 |
$response['error'] = sprintf(
|
246 |
+
/* translators: %s: error */
|
247 |
__( 'There was an error subscribing to GetResponse. %s', 'fl-builder' ),
|
248 |
$e->getMessage()
|
249 |
);
|
classes/class-fl-builder-service-godaddy-email-marketing.php
CHANGED
@@ -110,6 +110,7 @@ final class FLBuilderServiceGoDaddyEmailMarketing extends FLBuilderService {
|
|
110 |
'type' => 'text',
|
111 |
'label' => __( 'API Key', 'fl-builder' ),
|
112 |
'help' => __( 'Your API key from your GoDaddy Email Marketing account.', 'fl-builder' ),
|
|
|
113 |
'description' => sprintf( __( '<a%1$s>Sign in</a> to get your username and API key. <a%2$s>Signup</a> if you don\'t have a GoDaddy Email Marketing account.', 'fl-builder' ), ' href="https://gem.godaddy.com/mwp/accounts" target="_blank"', ' href="https://sso.godaddy.com/account/create?path=/wordpress_plugin&app=gem&realm=idp&ssoreturnpath=/%3Fpath%3D%2Fwordpress_plugin%26app%3Dgem%26realm%3Didp" target="_blank"' ),
|
114 |
'preview' => array(
|
115 |
'type' => 'none',
|
110 |
'type' => 'text',
|
111 |
'label' => __( 'API Key', 'fl-builder' ),
|
112 |
'help' => __( 'Your API key from your GoDaddy Email Marketing account.', 'fl-builder' ),
|
113 |
+
/* translators: 1: Godaddy account page: 2: Godaddy signup page */
|
114 |
'description' => sprintf( __( '<a%1$s>Sign in</a> to get your username and API key. <a%2$s>Signup</a> if you don\'t have a GoDaddy Email Marketing account.', 'fl-builder' ), ' href="https://gem.godaddy.com/mwp/accounts" target="_blank"', ' href="https://sso.godaddy.com/account/create?path=/wordpress_plugin&app=gem&realm=idp&ssoreturnpath=/%3Fpath%3D%2Fwordpress_plugin%26app%3Dgem%26realm%3Didp" target="_blank"' ),
|
115 |
'preview' => array(
|
116 |
'type' => 'none',
|
classes/class-fl-builder-service-icontact-pro.php
CHANGED
@@ -103,7 +103,8 @@ final class FLBuilderServiceIContactPro extends FLBuilderService {
|
|
103 |
'profile_id' => $fields['profile_id'],
|
104 |
);
|
105 |
} catch ( Exception $e ) {
|
106 |
-
$errors
|
|
|
107 |
$response['error'] = sprintf( __( 'Error: Could not connect to iContact Pro. %s', 'fl-builder' ), $errors[0] );
|
108 |
}
|
109 |
}
|
@@ -148,6 +149,7 @@ final class FLBuilderServiceIContactPro extends FLBuilderService {
|
|
148 |
'type' => 'text',
|
149 |
'label' => __( 'App Password', 'fl-builder' ),
|
150 |
'help' => __( 'Your iContact Pro app password.', 'fl-builder' ),
|
|
|
151 |
'description' => sprintf( __( 'You must <a%1$s>create an app</a> in iContact Pro to obtain an app ID and password. Please see <a%2$s>the iContact docs</a> for complete instructions.', 'fl-builder' ), ' href="https://app.icontactpro.com/MKT/Settings/Api?returnUrl=/MKT/Settings" target="_blank"', ' href="http://www.icontact.com/developerportal/api-documentation/vocus-register-your-app/" target="_blank"' ),
|
152 |
'preview' => array(
|
153 |
'type' => 'none',
|
@@ -171,6 +173,7 @@ final class FLBuilderServiceIContactPro extends FLBuilderService {
|
|
171 |
'type' => 'text',
|
172 |
'label' => __( 'Profile ID', 'fl-builder' ),
|
173 |
'help' => __( 'Your iContact Pro Profile ID.', 'fl-builder' ),
|
|
|
174 |
'description' => sprintf( __( 'Your Company and Profile ID can also be found in the <a%1$s>iContact Pro API settings</a> under Account Information.', 'fl-builder' ), ' href="https://app.icontactpro.com/MKT/Settings/Api?returnUrl=/MKT/Settings" target="_blank"' ),
|
175 |
'preview' => array(
|
176 |
'type' => 'none',
|
@@ -209,7 +212,8 @@ final class FLBuilderServiceIContactPro extends FLBuilderService {
|
|
209 |
$lists = $api->getLists();
|
210 |
$response['html'] = $this->render_list_field( $lists, $settings );
|
211 |
} catch ( Exception $e ) {
|
212 |
-
$errors
|
|
|
213 |
$response['error'] = sprintf( __( 'Error: Could not connect to iContact Pro. %s', 'fl-builder' ), $errors[0] );
|
214 |
}
|
215 |
|
@@ -304,7 +308,8 @@ final class FLBuilderServiceIContactPro extends FLBuilderService {
|
|
304 |
|
305 |
$api->subscribeContactToList( $result->contactId, $settings->list_id ); // @codingStandardsIgnoreLine
|
306 |
} catch ( Exception $e ) {
|
307 |
-
$errors
|
|
|
308 |
$response['error'] = sprintf( __( 'There was an error subscribing to iContact Pro. %s', 'fl-builder' ), $errors[0] );
|
309 |
}
|
310 |
}
|
103 |
'profile_id' => $fields['profile_id'],
|
104 |
);
|
105 |
} catch ( Exception $e ) {
|
106 |
+
$errors = $api->getErrors();
|
107 |
+
/* translators: %s: error */
|
108 |
$response['error'] = sprintf( __( 'Error: Could not connect to iContact Pro. %s', 'fl-builder' ), $errors[0] );
|
109 |
}
|
110 |
}
|
149 |
'type' => 'text',
|
150 |
'label' => __( 'App Password', 'fl-builder' ),
|
151 |
'help' => __( 'Your iContact Pro app password.', 'fl-builder' ),
|
152 |
+
/* translators: 1: create app url: 2: register url */
|
153 |
'description' => sprintf( __( 'You must <a%1$s>create an app</a> in iContact Pro to obtain an app ID and password. Please see <a%2$s>the iContact docs</a> for complete instructions.', 'fl-builder' ), ' href="https://app.icontactpro.com/MKT/Settings/Api?returnUrl=/MKT/Settings" target="_blank"', ' href="http://www.icontact.com/developerportal/api-documentation/vocus-register-your-app/" target="_blank"' ),
|
154 |
'preview' => array(
|
155 |
'type' => 'none',
|
173 |
'type' => 'text',
|
174 |
'label' => __( 'Profile ID', 'fl-builder' ),
|
175 |
'help' => __( 'Your iContact Pro Profile ID.', 'fl-builder' ),
|
176 |
+
/* translators: 1: api link */
|
177 |
'description' => sprintf( __( 'Your Company and Profile ID can also be found in the <a%1$s>iContact Pro API settings</a> under Account Information.', 'fl-builder' ), ' href="https://app.icontactpro.com/MKT/Settings/Api?returnUrl=/MKT/Settings" target="_blank"' ),
|
178 |
'preview' => array(
|
179 |
'type' => 'none',
|
212 |
$lists = $api->getLists();
|
213 |
$response['html'] = $this->render_list_field( $lists, $settings );
|
214 |
} catch ( Exception $e ) {
|
215 |
+
$errors = $api->getErrors();
|
216 |
+
/* translators: %s: error */
|
217 |
$response['error'] = sprintf( __( 'Error: Could not connect to iContact Pro. %s', 'fl-builder' ), $errors[0] );
|
218 |
}
|
219 |
|
308 |
|
309 |
$api->subscribeContactToList( $result->contactId, $settings->list_id ); // @codingStandardsIgnoreLine
|
310 |
} catch ( Exception $e ) {
|
311 |
+
$errors = $api->getErrors();
|
312 |
+
/* translators: %s: error */
|
313 |
$response['error'] = sprintf( __( 'There was an error subscribing to iContact Pro. %s', 'fl-builder' ), $errors[0] );
|
314 |
}
|
315 |
}
|
classes/class-fl-builder-service-icontact.php
CHANGED
@@ -91,7 +91,8 @@ final class FLBuilderServiceIContact extends FLBuilderService {
|
|
91 |
'app_password' => $fields['app_password'],
|
92 |
);
|
93 |
} catch ( Exception $e ) {
|
94 |
-
$errors
|
|
|
95 |
$response['error'] = sprintf( __( 'Error: Could not connect to iContact. %s', 'fl-builder' ), $errors[0] );
|
96 |
}
|
97 |
}
|
@@ -136,6 +137,7 @@ final class FLBuilderServiceIContact extends FLBuilderService {
|
|
136 |
'type' => 'text',
|
137 |
'label' => __( 'App Password', 'fl-builder' ),
|
138 |
'help' => __( 'Your iContact app password.', 'fl-builder' ),
|
|
|
139 |
'description' => sprintf( __( 'You must <a%1$s>create an app</a> in iContact to obtain an app ID and password. Please see <a%2$s>the iContact docs</a> for complete instructions.', 'fl-builder' ), ' href="https://app.icontact.com/icp/core/registerapp/" target="_blank"', ' href="http://www.icontact.com/developerportal/api-documentation/vocus-register-your-app/" target="_blank"' ),
|
140 |
'preview' => array(
|
141 |
'type' => 'none',
|
@@ -172,7 +174,8 @@ final class FLBuilderServiceIContact extends FLBuilderService {
|
|
172 |
$lists = $api->getLists();
|
173 |
$response['html'] = $this->render_list_field( $lists, $settings );
|
174 |
} catch ( Exception $e ) {
|
175 |
-
$errors
|
|
|
176 |
$response['error'] = sprintf( __( 'Error: Could not connect to iContact. %s', 'fl-builder' ), $errors[0] );
|
177 |
}
|
178 |
|
@@ -267,7 +270,8 @@ final class FLBuilderServiceIContact extends FLBuilderService {
|
|
267 |
// @codingStandardsIgnoreLine
|
268 |
$api->subscribeContactToList( $result->contactId, $settings->list_id );
|
269 |
} catch ( Exception $e ) {
|
270 |
-
$errors
|
|
|
271 |
$response['error'] = sprintf( __( 'There was an error subscribing to iContact. %s', 'fl-builder' ), $errors[0] );
|
272 |
}
|
273 |
}
|
91 |
'app_password' => $fields['app_password'],
|
92 |
);
|
93 |
} catch ( Exception $e ) {
|
94 |
+
$errors = $api->getErrors();
|
95 |
+
/* translators: %s: error */
|
96 |
$response['error'] = sprintf( __( 'Error: Could not connect to iContact. %s', 'fl-builder' ), $errors[0] );
|
97 |
}
|
98 |
}
|
137 |
'type' => 'text',
|
138 |
'label' => __( 'App Password', 'fl-builder' ),
|
139 |
'help' => __( 'Your iContact app password.', 'fl-builder' ),
|
140 |
+
/* translators: 1: create app url: 2: docs url */
|
141 |
'description' => sprintf( __( 'You must <a%1$s>create an app</a> in iContact to obtain an app ID and password. Please see <a%2$s>the iContact docs</a> for complete instructions.', 'fl-builder' ), ' href="https://app.icontact.com/icp/core/registerapp/" target="_blank"', ' href="http://www.icontact.com/developerportal/api-documentation/vocus-register-your-app/" target="_blank"' ),
|
142 |
'preview' => array(
|
143 |
'type' => 'none',
|
174 |
$lists = $api->getLists();
|
175 |
$response['html'] = $this->render_list_field( $lists, $settings );
|
176 |
} catch ( Exception $e ) {
|
177 |
+
$errors = $api->getErrors();
|
178 |
+
/* translators: %s: error */
|
179 |
$response['error'] = sprintf( __( 'Error: Could not connect to iContact. %s', 'fl-builder' ), $errors[0] );
|
180 |
}
|
181 |
|
270 |
// @codingStandardsIgnoreLine
|
271 |
$api->subscribeContactToList( $result->contactId, $settings->list_id );
|
272 |
} catch ( Exception $e ) {
|
273 |
+
$errors = $api->getErrors();
|
274 |
+
/* translators: %s: error */
|
275 |
$response['error'] = sprintf( __( 'There was an error subscribing to iContact. %s', 'fl-builder' ), $errors[0] );
|
276 |
}
|
277 |
}
|
classes/class-fl-builder-service-infusionsoft.php
CHANGED
@@ -44,6 +44,7 @@ final class FLBuilderServiceInfusionsoft extends FLBuilderService {
|
|
44 |
} catch ( iSDKException $e ) {
|
45 |
$this->api_instance = new stdClass();
|
46 |
$this->api_instance->error = sprintf(
|
|
|
47 |
__( 'There was an error connecting to Infusionsoft. %s', 'fl-builder' ),
|
48 |
$e->getMessage()
|
49 |
);
|
@@ -281,6 +282,7 @@ final class FLBuilderServiceInfusionsoft extends FLBuilderService {
|
|
281 |
}
|
282 |
} catch ( iSDKException $e ) {
|
283 |
$response['error'] = sprintf(
|
|
|
284 |
__( 'There was an error subscribing to Infusionsoft. %s', 'fl-builder' ),
|
285 |
$e->getMessage()
|
286 |
);
|
44 |
} catch ( iSDKException $e ) {
|
45 |
$this->api_instance = new stdClass();
|
46 |
$this->api_instance->error = sprintf(
|
47 |
+
/* translators: %s: error */
|
48 |
__( 'There was an error connecting to Infusionsoft. %s', 'fl-builder' ),
|
49 |
$e->getMessage()
|
50 |
);
|
282 |
}
|
283 |
} catch ( iSDKException $e ) {
|
284 |
$response['error'] = sprintf(
|
285 |
+
/* translators: %s: error */
|
286 |
__( 'There was an error subscribing to Infusionsoft. %s', 'fl-builder' ),
|
287 |
$e->getMessage()
|
288 |
);
|
classes/class-fl-builder-service-mailchimp.php
CHANGED
@@ -338,6 +338,7 @@ final class FLBuilderServiceMailChimp extends FLBuilderService {
|
|
338 |
|
339 |
if ( $api->getLastError() ) {
|
340 |
$response['error'] = sprintf(
|
|
|
341 |
__( 'There was an error subscribing to MailChimp. %s', 'fl-builder' ),
|
342 |
$api->getLastError()
|
343 |
);
|
338 |
|
339 |
if ( $api->getLastError() ) {
|
340 |
$response['error'] = sprintf(
|
341 |
+
/* translators: %s: error */
|
342 |
__( 'There was an error subscribing to MailChimp. %s', 'fl-builder' ),
|
343 |
$api->getLastError()
|
344 |
);
|
classes/class-fl-builder-service-mailerlite.php
CHANGED
@@ -84,6 +84,7 @@ final class FLBuilderServiceMailerLite extends FLBuilderService {
|
|
84 |
'api_key' => $fields['api_key'],
|
85 |
);
|
86 |
} else {
|
|
|
87 |
$response['error'] = sprintf( __( 'Error: Could not connect to MailerLite. %s', 'fl-builder' ), $get_api_response['http_code'] );
|
88 |
}
|
89 |
}
|
@@ -235,6 +236,7 @@ final class FLBuilderServiceMailerLite extends FLBuilderService {
|
|
235 |
$result = $api->getResponseInfo();
|
236 |
|
237 |
if ( 200 !== $result['http_code'] ) {
|
|
|
238 |
$response['error'] = sprintf( __( 'There was an error subscribing to MailerLite. Code: %s', 'fl-builder' ), $result['http_code'] );
|
239 |
}
|
240 |
}
|
84 |
'api_key' => $fields['api_key'],
|
85 |
);
|
86 |
} else {
|
87 |
+
/* translators: %s: error */
|
88 |
$response['error'] = sprintf( __( 'Error: Could not connect to MailerLite. %s', 'fl-builder' ), $get_api_response['http_code'] );
|
89 |
}
|
90 |
}
|
236 |
$result = $api->getResponseInfo();
|
237 |
|
238 |
if ( 200 !== $result['http_code'] ) {
|
239 |
+
/* translators: %s: error */
|
240 |
$response['error'] = sprintf( __( 'There was an error subscribing to MailerLite. Code: %s', 'fl-builder' ), $result['http_code'] );
|
241 |
}
|
242 |
}
|
classes/class-fl-builder-service-mailpoet.php
CHANGED
@@ -191,6 +191,7 @@ final class FLBuilderServiceMailPoet extends FLBuilderService {
|
|
191 |
$errors = $subscribed->getErrors();
|
192 |
|
193 |
if ( false !== $errors ) {
|
|
|
194 |
$response['error'] = sprintf( __( 'There was an error subscribing to MailPoet. %s', 'fl-builder' ), $errors[0] );
|
195 |
}
|
196 |
}
|
191 |
$errors = $subscribed->getErrors();
|
192 |
|
193 |
if ( false !== $errors ) {
|
194 |
+
/* translators: %s: error */
|
195 |
$response['error'] = sprintf( __( 'There was an error subscribing to MailPoet. %s', 'fl-builder' ), $errors[0] );
|
196 |
}
|
197 |
}
|
classes/class-fl-builder-service-mailrelay.php
CHANGED
@@ -92,6 +92,7 @@ final class FLBuilderServiceMailrelay extends FLBuilderService {
|
|
92 |
'api_key' => $fields['api_key'],
|
93 |
);
|
94 |
} else {
|
|
|
95 |
$response['error'] = sprintf( __( 'Error: Could not connect to Mailrelay. %s', 'fl-builder' ), $result['error'] );
|
96 |
}
|
97 |
}
|
@@ -157,6 +158,7 @@ final class FLBuilderServiceMailrelay extends FLBuilderService {
|
|
157 |
);
|
158 |
|
159 |
if ( isset( $result['error'] ) ) {
|
|
|
160 |
$response['error'] = sprintf( __( 'Error: Please check your API key. %s', 'fl-builder' ), $result['error'] );
|
161 |
} else {
|
162 |
$response['html'] = $this->render_list_field( $result['data'], $settings );
|
@@ -230,6 +232,7 @@ final class FLBuilderServiceMailrelay extends FLBuilderService {
|
|
230 |
) );
|
231 |
|
232 |
if ( isset( $result['error'] ) ) {
|
|
|
233 |
$response['error'] = sprintf( __( 'There was an error subscribing to Mailrelay. %s', 'fl-builder' ), $result['error'] );
|
234 |
}
|
235 |
}
|
92 |
'api_key' => $fields['api_key'],
|
93 |
);
|
94 |
} else {
|
95 |
+
/* translators: %s: error */
|
96 |
$response['error'] = sprintf( __( 'Error: Could not connect to Mailrelay. %s', 'fl-builder' ), $result['error'] );
|
97 |
}
|
98 |
}
|
158 |
);
|
159 |
|
160 |
if ( isset( $result['error'] ) ) {
|
161 |
+
/* translators: %s: error */
|
162 |
$response['error'] = sprintf( __( 'Error: Please check your API key. %s', 'fl-builder' ), $result['error'] );
|
163 |
} else {
|
164 |
$response['html'] = $this->render_list_field( $result['data'], $settings );
|
232 |
) );
|
233 |
|
234 |
if ( isset( $result['error'] ) ) {
|
235 |
+
/* translators: %s: error */
|
236 |
$response['error'] = sprintf( __( 'There was an error subscribing to Mailrelay. %s', 'fl-builder' ), $result['error'] );
|
237 |
}
|
238 |
}
|
classes/class-fl-builder-service-mautic.php
CHANGED
@@ -104,7 +104,7 @@ final class FLBuilderServiceMautic extends FLBuilderService {
|
|
104 |
if ( isset( $get_response['errors'] ) && count( $get_response['errors'] ) > 0 ) {
|
105 |
$error_message = '[' . $get_response['errors'][0]['code'] . '] ' . $get_response['errors'][0]['message'];
|
106 |
}
|
107 |
-
|
108 |
$response['error'] = sprintf( __( 'Error: Could not connect to Mautic. %s', 'fl-builder' ), $error_message );
|
109 |
}
|
110 |
}
|
@@ -277,6 +277,7 @@ final class FLBuilderServiceMautic extends FLBuilderService {
|
|
277 |
|
278 |
if ( isset( $get_api_response['errors'] ) && count( $get_api_response['errors'] ) > 0 ) {
|
279 |
$response['error'] = sprintf(
|
|
|
280 |
__( 'There was an error subscribing to Mautic. %s', 'fl-builder' ),
|
281 |
'[' . $get_api_response['errors'][0]['code'] . '] ' . $get_api_response['errors'][0]['message']
|
282 |
);
|
104 |
if ( isset( $get_response['errors'] ) && count( $get_response['errors'] ) > 0 ) {
|
105 |
$error_message = '[' . $get_response['errors'][0]['code'] . '] ' . $get_response['errors'][0]['message'];
|
106 |
}
|
107 |
+
/* translators: %s: error */
|
108 |
$response['error'] = sprintf( __( 'Error: Could not connect to Mautic. %s', 'fl-builder' ), $error_message );
|
109 |
}
|
110 |
}
|
277 |
|
278 |
if ( isset( $get_api_response['errors'] ) && count( $get_api_response['errors'] ) > 0 ) {
|
279 |
$response['error'] = sprintf(
|
280 |
+
/* translators: %s: error */
|
281 |
__( 'There was an error subscribing to Mautic. %s', 'fl-builder' ),
|
282 |
'[' . $get_api_response['errors'][0]['code'] . '] ' . $get_api_response['errors'][0]['message']
|
283 |
);
|
classes/class-fl-builder-service-ontraport.php
CHANGED
@@ -86,6 +86,7 @@ final class FLBuilderServiceOntraport extends FLBuilderService {
|
|
86 |
);
|
87 |
} else {
|
88 |
$response['error'] = sprintf(
|
|
|
89 |
__( 'Error: Please check your API token. Code: %s', 'fl-builder' ),
|
90 |
$status_code
|
91 |
);
|
@@ -247,6 +248,7 @@ final class FLBuilderServiceOntraport extends FLBuilderService {
|
|
247 |
|
248 |
if ( 200 !== $api->getLastStatusCode() ) {
|
249 |
$response['error'] = sprintf(
|
|
|
250 |
__( 'There was an error subscribing to Ontraport. Code: %s', 'fl-builder' ),
|
251 |
$api->getLastStatusCode()
|
252 |
);
|
86 |
);
|
87 |
} else {
|
88 |
$response['error'] = sprintf(
|
89 |
+
/* translators: %s: error code */
|
90 |
__( 'Error: Please check your API token. Code: %s', 'fl-builder' ),
|
91 |
$status_code
|
92 |
);
|
248 |
|
249 |
if ( 200 !== $api->getLastStatusCode() ) {
|
250 |
$response['error'] = sprintf(
|
251 |
+
/* translators: %s: error code */
|
252 |
__( 'There was an error subscribing to Ontraport. Code: %s', 'fl-builder' ),
|
253 |
$api->getLastStatusCode()
|
254 |
);
|
classes/class-fl-builder-service-sendinblue.php
CHANGED
@@ -71,6 +71,7 @@ final class FLBuilderServiceSendinBlue extends FLBuilderService {
|
|
71 |
if ( ! is_array( $result ) ) {
|
72 |
$response['error'] = __( 'There was an error connecting to SendinBlue. Please try again.', 'fl-builder' );
|
73 |
} elseif ( isset( $result['code'] ) && 'failure' == $result['code'] ) {
|
|
|
74 |
$response['error'] = sprintf( __( 'Error: Could not connect to SendinBlue. %s', 'fl-builder' ), $result['message'] );
|
75 |
} else {
|
76 |
$response['data'] = array(
|
@@ -129,6 +130,7 @@ final class FLBuilderServiceSendinBlue extends FLBuilderService {
|
|
129 |
if ( ! is_array( $result ) ) {
|
130 |
$response['error'] = __( 'There was an error connecting to SendinBlue. Please try again.', 'fl-builder' );
|
131 |
} elseif ( isset( $result['code'] ) && 'failure' == $result['code'] ) {
|
|
|
132 |
$response['error'] = sprintf( __( 'Error: Could not connect to SendinBlue. %s', 'fl-builder' ), $result['message'] );
|
133 |
} else {
|
134 |
$response['html'] = $this->render_list_field( $result['data']['lists'], $settings );
|
@@ -222,6 +224,7 @@ final class FLBuilderServiceSendinBlue extends FLBuilderService {
|
|
222 |
if ( ! is_array( $result ) ) {
|
223 |
$response['error'] = __( 'There was an error subscribing to SendinBlue. Please try again.', 'fl-builder' );
|
224 |
} elseif ( isset( $result['code'] ) && 'failure' == $result['code'] ) {
|
|
|
225 |
$response['error'] = sprintf( __( 'Error: Could not subscribe to SendinBlue. %s', 'fl-builder' ), $result['message'] );
|
226 |
}
|
227 |
}
|
71 |
if ( ! is_array( $result ) ) {
|
72 |
$response['error'] = __( 'There was an error connecting to SendinBlue. Please try again.', 'fl-builder' );
|
73 |
} elseif ( isset( $result['code'] ) && 'failure' == $result['code'] ) {
|
74 |
+
/* translators: %s: error */
|
75 |
$response['error'] = sprintf( __( 'Error: Could not connect to SendinBlue. %s', 'fl-builder' ), $result['message'] );
|
76 |
} else {
|
77 |
$response['data'] = array(
|
130 |
if ( ! is_array( $result ) ) {
|
131 |
$response['error'] = __( 'There was an error connecting to SendinBlue. Please try again.', 'fl-builder' );
|
132 |
} elseif ( isset( $result['code'] ) && 'failure' == $result['code'] ) {
|
133 |
+
/* translators: %s: error */
|
134 |
$response['error'] = sprintf( __( 'Error: Could not connect to SendinBlue. %s', 'fl-builder' ), $result['message'] );
|
135 |
} else {
|
136 |
$response['html'] = $this->render_list_field( $result['data']['lists'], $settings );
|
224 |
if ( ! is_array( $result ) ) {
|
225 |
$response['error'] = __( 'There was an error subscribing to SendinBlue. Please try again.', 'fl-builder' );
|
226 |
} elseif ( isset( $result['code'] ) && 'failure' == $result['code'] ) {
|
227 |
+
/* translators: %s: error */
|
228 |
$response['error'] = sprintf( __( 'Error: Could not subscribe to SendinBlue. %s', 'fl-builder' ), $result['message'] );
|
229 |
}
|
230 |
}
|
classes/class-fl-builder-service-sendy.php
CHANGED
@@ -90,6 +90,7 @@ final class FLBuilderServiceSendy extends FLBuilderService {
|
|
90 |
'list_id' => $fields['list_id'],
|
91 |
);
|
92 |
} else {
|
|
|
93 |
$response['error'] = sprintf( __( 'Error: Could not connect to Sendy. %s', 'fl-builder' ), $get_api_response['message'] );
|
94 |
}
|
95 |
}
|
@@ -197,6 +198,7 @@ final class FLBuilderServiceSendy extends FLBuilderService {
|
|
197 |
) );
|
198 |
|
199 |
if ( false === $get_api_response['status'] ) {
|
|
|
200 |
$response['error'] = sprintf( __( 'There was an error subscribing to Sendy. %s', 'fl-builder' ), $get_api_response['message'] );
|
201 |
}
|
202 |
}
|
90 |
'list_id' => $fields['list_id'],
|
91 |
);
|
92 |
} else {
|
93 |
+
/* translators: %s: error */
|
94 |
$response['error'] = sprintf( __( 'Error: Could not connect to Sendy. %s', 'fl-builder' ), $get_api_response['message'] );
|
95 |
}
|
96 |
}
|
198 |
) );
|
199 |
|
200 |
if ( false === $get_api_response['status'] ) {
|
201 |
+
/* translators: %s: error */
|
202 |
$response['error'] = sprintf( __( 'There was an error subscribing to Sendy. %s', 'fl-builder' ), $get_api_response['message'] );
|
203 |
}
|
204 |
}
|
classes/class-fl-builder-ui-settings-forms.php
CHANGED
@@ -25,6 +25,7 @@ class FLBuilderUISettingsForms {
|
|
25 |
add_action( 'wp_enqueue_scripts', __CLASS__ . '::enqueue_settings_config', 11 );
|
26 |
add_action( 'wp_footer', __CLASS__ . '::init_js_config', 1 );
|
27 |
add_action( 'wp_footer', __CLASS__ . '::render_js_templates', 11 );
|
|
|
28 |
}
|
29 |
|
30 |
/**
|
@@ -66,8 +67,7 @@ class FLBuilderUISettingsForms {
|
|
66 |
wp_raise_memory_limit( 'bb-plugin' );
|
67 |
}
|
68 |
|
69 |
-
$type
|
70 |
-
$handler = 'FLBuilderUISettingsForms::compress_settings_config';
|
71 |
|
72 |
if ( 'modules' === $type ) {
|
73 |
$settings = FLBuilderUISettingsForms::get_modules_js_config();
|
@@ -75,13 +75,9 @@ class FLBuilderUISettingsForms {
|
|
75 |
$settings = FLBuilderUISettingsForms::get_js_config();
|
76 |
}
|
77 |
|
78 |
-
if ( @ini_get( 'zlib.output_compression' ) ) { // @codingStandardsIgnoreLine
|
79 |
-
@ini_set( 'zlib.output_compression', 'Off' ); // @codingStandardsIgnoreLine
|
80 |
-
$handler = null;
|
81 |
-
}
|
82 |
header( 'Content-Type: application/javascript' );
|
83 |
|
84 |
-
ob_start(
|
85 |
include FL_BUILDER_DIR . 'includes/ui-settings-config.php';
|
86 |
ob_end_flush();
|
87 |
|
@@ -93,7 +89,7 @@ class FLBuilderUISettingsForms {
|
|
93 |
* Attempts to use the output buffer gzip handler to compress
|
94 |
* the settings config. We have to do it this way to prevent
|
95 |
* errors we were running into on some hosts.
|
96 |
-
*
|
97 |
* @since 2.1.0.2
|
98 |
* @param string $buffer $mode
|
99 |
* @return string
|
@@ -314,8 +310,9 @@ class FLBuilderUISettingsForms {
|
|
314 |
'title' => $module->name,
|
315 |
'tabs' => $module->form,
|
316 |
'assets' => array(
|
317 |
-
'css'
|
318 |
-
'js'
|
|
|
319 |
),
|
320 |
);
|
321 |
}
|
@@ -918,7 +915,7 @@ class FLBuilderUISettingsForms {
|
|
918 |
} else {
|
919 |
echo '<td> </td><td>';
|
920 |
}
|
921 |
-
|
922 |
echo '<a href="javascript:void(0);" onclick="return false;" class="fl-builder-field-add fl-builder-button" data-field="' . $arr_name . '">' . sprintf( _x( 'Add %s', 'Field name to add.', 'fl-builder' ), $field['label'] ) . '</a>';
|
923 |
echo '</td>';
|
924 |
echo '</tr>';
|
@@ -948,6 +945,15 @@ class FLBuilderUISettingsForms {
|
|
948 |
'html' => $html,
|
949 |
);
|
950 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
951 |
}
|
952 |
|
953 |
FLBuilderUISettingsForms::init();
|
25 |
add_action( 'wp_enqueue_scripts', __CLASS__ . '::enqueue_settings_config', 11 );
|
26 |
add_action( 'wp_footer', __CLASS__ . '::init_js_config', 1 );
|
27 |
add_action( 'wp_footer', __CLASS__ . '::render_js_templates', 11 );
|
28 |
+
add_filter( 'fl_builder_ui_js_config', __CLASS__ . '::layout_css_js' );
|
29 |
}
|
30 |
|
31 |
/**
|
67 |
wp_raise_memory_limit( 'bb-plugin' );
|
68 |
}
|
69 |
|
70 |
+
$type = sanitize_key( $_GET['fl_builder_load_settings_config'] );
|
|
|
71 |
|
72 |
if ( 'modules' === $type ) {
|
73 |
$settings = FLBuilderUISettingsForms::get_modules_js_config();
|
75 |
$settings = FLBuilderUISettingsForms::get_js_config();
|
76 |
}
|
77 |
|
|
|
|
|
|
|
|
|
78 |
header( 'Content-Type: application/javascript' );
|
79 |
|
80 |
+
ob_start();
|
81 |
include FL_BUILDER_DIR . 'includes/ui-settings-config.php';
|
82 |
ob_end_flush();
|
83 |
|
89 |
* Attempts to use the output buffer gzip handler to compress
|
90 |
* the settings config. We have to do it this way to prevent
|
91 |
* errors we were running into on some hosts.
|
92 |
+
* @deprecated 2.2.2
|
93 |
* @since 2.1.0.2
|
94 |
* @param string $buffer $mode
|
95 |
* @return string
|
310 |
'title' => $module->name,
|
311 |
'tabs' => $module->form,
|
312 |
'assets' => array(
|
313 |
+
'css' => $css,
|
314 |
+
'js' => $js,
|
315 |
+
'jsurl' => $js_file_uri,
|
316 |
),
|
317 |
);
|
318 |
}
|
915 |
} else {
|
916 |
echo '<td> </td><td>';
|
917 |
}
|
918 |
+
/* translators: %s: field name to add */
|
919 |
echo '<a href="javascript:void(0);" onclick="return false;" class="fl-builder-field-add fl-builder-button" data-field="' . $arr_name . '">' . sprintf( _x( 'Add %s', 'Field name to add.', 'fl-builder' ), $field['label'] ) . '</a>';
|
920 |
echo '</td>';
|
921 |
echo '</tr>';
|
945 |
'html' => $html,
|
946 |
);
|
947 |
}
|
948 |
+
|
949 |
+
static public function layout_css_js( $config ) {
|
950 |
+
|
951 |
+
$post_id = $config['postId'];
|
952 |
+
$settings = get_post_meta( $post_id, '_fl_builder_data_settings', true );
|
953 |
+
|
954 |
+
$config['layout_css_js'] = ( ( isset( $settings->css ) && '' !== $settings->css ) || ( isset( $settings->js ) && '' !== $settings->js ) ) ? true : false;
|
955 |
+
return $config;
|
956 |
+
}
|
957 |
}
|
958 |
|
959 |
FLBuilderUISettingsForms::init();
|
classes/class-fl-builder-usage.php
CHANGED
@@ -99,6 +99,7 @@ final class FLBuilderUsage {
|
|
99 |
);
|
100 |
|
101 |
$message = sprintf(
|
|
|
102 |
__( 'Would you like to help us improve %s by sending anonymous usage data?', 'fl-builder' ),
|
103 |
FLBuilderModel::get_branding()
|
104 |
);
|
99 |
);
|
100 |
|
101 |
$message = sprintf(
|
102 |
+
/* translators: %s: branded builder name */
|
103 |
__( 'Would you like to help us improve %s by sending anonymous usage data?', 'fl-builder' ),
|
104 |
FLBuilderModel::get_branding()
|
105 |
);
|
classes/class-fl-builder-wp-blocks.php
CHANGED
@@ -79,12 +79,17 @@ final class FLBuilderWPBlocks {
|
|
79 |
'id' => $post->ID,
|
80 |
),
|
81 |
'strings' => array(
|
|
|
82 |
'active' => sprintf( _x( '%1$s is currently active for this %2$s.', '%1$s branded builder name. %2$s post type name.', 'fl-builder' ), $branding, strtolower( $post_type_name ) ),
|
|
|
83 |
'convert' => sprintf( _x( 'Convert to %s', '%s branded builder name.', 'fl-builder' ), $branding ),
|
|
|
84 |
'description' => sprintf( _x( '%s lets you drag and drop your layout on the frontend.', '%s branded builder name.', 'fl-builder' ), $branding ),
|
85 |
'editor' => __( 'Use Standard Editor', 'fl-builder' ),
|
|
|
86 |
'launch' => sprintf( _x( 'Launch %s', '%s branded builder name.', 'fl-builder' ), $branding ),
|
87 |
'title' => $branding,
|
|
|
88 |
'view' => sprintf( _x( 'View %s', '%s post type name.', 'fl-builder' ), $post_type_name ),
|
89 |
'warning' => __( 'Switching to the native WordPress editor will disable your Beaver Builder layout until it is enabled again. Any edits made in the WordPress editor will not be converted to your Page Builded layout. Do you want to continue?', 'fl-builder' ),
|
90 |
),
|
79 |
'id' => $post->ID,
|
80 |
),
|
81 |
'strings' => array(
|
82 |
+
/* translators: 1: branded builder name: 2: post type name */
|
83 |
'active' => sprintf( _x( '%1$s is currently active for this %2$s.', '%1$s branded builder name. %2$s post type name.', 'fl-builder' ), $branding, strtolower( $post_type_name ) ),
|
84 |
+
/* translators: %s: post type name */
|
85 |
'convert' => sprintf( _x( 'Convert to %s', '%s branded builder name.', 'fl-builder' ), $branding ),
|
86 |
+
/* translators: %s: branded builder name */
|
87 |
'description' => sprintf( _x( '%s lets you drag and drop your layout on the frontend.', '%s branded builder name.', 'fl-builder' ), $branding ),
|
88 |
'editor' => __( 'Use Standard Editor', 'fl-builder' ),
|
89 |
+
/* translators: %s: branded builder name */
|
90 |
'launch' => sprintf( _x( 'Launch %s', '%s branded builder name.', 'fl-builder' ), $branding ),
|
91 |
'title' => $branding,
|
92 |
+
/* translators: %s: post type name */
|
93 |
'view' => sprintf( _x( 'View %s', '%s post type name.', 'fl-builder' ), $post_type_name ),
|
94 |
'warning' => __( 'Switching to the native WordPress editor will disable your Beaver Builder layout until it is enabled again. Any edits made in the WordPress editor will not be converted to your Page Builded layout. Do you want to continue?', 'fl-builder' ),
|
95 |
),
|
classes/class-fl-builder-wpcli-command.php
CHANGED
@@ -62,9 +62,11 @@ class FLbuilder_WPCLI_Command extends WP_CLI_Command {
|
|
62 |
$blog_id = $blog['blog_id'];
|
63 |
switch_to_blog( $blog_id );
|
64 |
FLBuilderModel::delete_asset_cache_for_all_posts();
|
|
|
65 |
WP_CLI::success( sprintf( _x( 'Cleared the page builder cache for blog %s', 'current blog name', 'fl-builder' ), get_option( 'home' ) ) );
|
66 |
if ( $all ) {
|
67 |
FLCustomizer::refresh_css();
|
|
|
68 |
WP_CLI::success( sprintf( _x( 'Rebuilt the theme cache for blog %s', 'current blog name', 'fl-builder' ), get_option( 'home' ) ) );
|
69 |
}
|
70 |
restore_current_blog();
|
@@ -112,23 +114,23 @@ class FLbuilder_WPCLI_Command extends WP_CLI_Command {
|
|
112 |
|
113 |
if ( isset( $assoc_args['deactivate'] ) ) {
|
114 |
FLUpdater::save_subscription_license( '' );
|
115 |
-
WP_CLI::success( '
|
116 |
return false;
|
117 |
}
|
118 |
|
119 |
if ( defined( 'FL_LICENSE_KEY' ) ) {
|
120 |
$license = FL_LICENSE_KEY;
|
121 |
-
WP_CLI::log( 'Found license using FL_LICENSE_KEY global.' );
|
122 |
}
|
123 |
if ( isset( $assoc_args['license'] ) && '' != $assoc_args['license'] ) {
|
124 |
$license = $assoc_args['license'];
|
125 |
}
|
126 |
|
127 |
if ( ! $license ) {
|
128 |
-
WP_CLI::error( 'No license info found.' );
|
129 |
}
|
130 |
-
|
131 |
-
WP_CLI::log( sprintf( 'Using license [ %s ] to register %s', $license, network_home_url() ) );
|
132 |
|
133 |
$response = FLUpdater::save_subscription_license( $license );
|
134 |
|
@@ -140,4 +142,358 @@ class FLbuilder_WPCLI_Command extends WP_CLI_Command {
|
|
140 |
}
|
141 |
}
|
142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
WP_CLI::add_command( 'beaver', 'FLbuilder_WPCLI_Command' );
|
|
62 |
$blog_id = $blog['blog_id'];
|
63 |
switch_to_blog( $blog_id );
|
64 |
FLBuilderModel::delete_asset_cache_for_all_posts();
|
65 |
+
/* translators: %s: current blog name */
|
66 |
WP_CLI::success( sprintf( _x( 'Cleared the page builder cache for blog %s', 'current blog name', 'fl-builder' ), get_option( 'home' ) ) );
|
67 |
if ( $all ) {
|
68 |
FLCustomizer::refresh_css();
|
69 |
+
/* translators: %s: current blog name */
|
70 |
WP_CLI::success( sprintf( _x( 'Rebuilt the theme cache for blog %s', 'current blog name', 'fl-builder' ), get_option( 'home' ) ) );
|
71 |
}
|
72 |
restore_current_blog();
|
114 |
|
115 |
if ( isset( $assoc_args['deactivate'] ) ) {
|
116 |
FLUpdater::save_subscription_license( '' );
|
117 |
+
WP_CLI::success( __( 'Deactivated', 'fl-builder' ) );
|
118 |
return false;
|
119 |
}
|
120 |
|
121 |
if ( defined( 'FL_LICENSE_KEY' ) ) {
|
122 |
$license = FL_LICENSE_KEY;
|
123 |
+
WP_CLI::log( __( 'Found license using FL_LICENSE_KEY global.', 'fl-builder' ) );
|
124 |
}
|
125 |
if ( isset( $assoc_args['license'] ) && '' != $assoc_args['license'] ) {
|
126 |
$license = $assoc_args['license'];
|
127 |
}
|
128 |
|
129 |
if ( ! $license ) {
|
130 |
+
WP_CLI::error( __( 'No license info found.', 'fl-builder' ) );
|
131 |
}
|
132 |
+
/* translators: %1$s: license : %2$s: domain */
|
133 |
+
WP_CLI::log( sprintf( __( 'Using license [ %1$s ] to register %2$s', 'fl-builder' ), $license, network_home_url() ) );
|
134 |
|
135 |
$response = FLUpdater::save_subscription_license( $license );
|
136 |
|
142 |
}
|
143 |
}
|
144 |
|
145 |
+
/**
|
146 |
+
* WP Cli commands for Beaver Themer.
|
147 |
+
*/
|
148 |
+
class FLThemer_List_WPCLI_Command extends WP_CLI_Command {
|
149 |
+
|
150 |
+
var $fields = array(
|
151 |
+
'id',
|
152 |
+
'name',
|
153 |
+
'status',
|
154 |
+
'type',
|
155 |
+
'hook',
|
156 |
+
'locations',
|
157 |
+
);
|
158 |
+
|
159 |
+
/**
|
160 |
+
* Set status for Themer layout.
|
161 |
+
*
|
162 |
+
* ## OPTIONS
|
163 |
+
*
|
164 |
+
* [--id]
|
165 |
+
* Post ID of Themer layout
|
166 |
+
*
|
167 |
+
* [--status]
|
168 |
+
* Status to use, publish or draft
|
169 |
+
*
|
170 |
+
* ## EXAMPLES
|
171 |
+
*
|
172 |
+
* 1. wp beaver themer set-status --id=123 --status=publish
|
173 |
+
* - Set status for id 123 to publish
|
174 |
+
* 2. wp beaver themer set-status --id=456 --status=draft
|
175 |
+
* - Set status for id 456 to draft
|
176 |
+
* @subcommand set-status
|
177 |
+
*/
|
178 |
+
public function set_status( $args, $assoc_args ) {
|
179 |
+
|
180 |
+
$this->is_themer();
|
181 |
+
|
182 |
+
if ( ! isset( $assoc_args['status'] ) ) {
|
183 |
+
WP_CLI::error( 'No status use --status=' );
|
184 |
+
exit;
|
185 |
+
}
|
186 |
+
|
187 |
+
if ( ! isset( $assoc_args['id'] ) ) {
|
188 |
+
WP_CLI::error( 'No id use --id=' );
|
189 |
+
exit;
|
190 |
+
}
|
191 |
+
$status = $assoc_args['status'];
|
192 |
+
$id = $assoc_args['id'];
|
193 |
+
|
194 |
+
if ( ! in_array( $status, array( 'publish', 'draft' ) ) ) {
|
195 |
+
WP_CLI::error( __( 'Status must be either draft or publish', 'fl-builder' ) );
|
196 |
+
exit;
|
197 |
+
}
|
198 |
+
$args = array(
|
199 |
+
'ID' => $id,
|
200 |
+
'post_status' => $status,
|
201 |
+
);
|
202 |
+
|
203 |
+
if ( 'fl-theme-layout' == get_post_type( $id ) ) {
|
204 |
+
wp_update_post( $args );
|
205 |
+
WP_CLI::success( __( 'Layout status updated', 'fl-builder' ) );
|
206 |
+
} else {
|
207 |
+
WPCLI::error( __( 'Post was not valid Themer layout.', 'fl-builder' ) );
|
208 |
+
}
|
209 |
+
}
|
210 |
+
|
211 |
+
/**
|
212 |
+
* Set type for Themer layout.
|
213 |
+
*
|
214 |
+
* ## OPTIONS
|
215 |
+
*
|
216 |
+
* [--id]
|
217 |
+
* Post ID of Themer layout
|
218 |
+
*
|
219 |
+
* [--type]
|
220 |
+
* Type to use, header, footer, archive, 404 or part
|
221 |
+
*
|
222 |
+
* [--hook] ( If using part )
|
223 |
+
* Part hook to use
|
224 |
+
*
|
225 |
+
* ## EXAMPLES
|
226 |
+
*
|
227 |
+
* 1. wp beaver themer set-type --id=123 --type=archive
|
228 |
+
* - Set typw for id 123 to archive
|
229 |
+
* 2. wp beaver themer set-type --id=456 --type=part --hook=fl_before_content
|
230 |
+
* - Set type for id 456 to part and set hook to fl_before_content
|
231 |
+
* @subcommand set-type
|
232 |
+
*/
|
233 |
+
public function set_type( $args, $assoc_args ) {
|
234 |
+
|
235 |
+
$this->is_themer();
|
236 |
+
|
237 |
+
if ( ! isset( $assoc_args['type'] ) ) {
|
238 |
+
WP_CLI::error( 'No type use --type=' );
|
239 |
+
exit;
|
240 |
+
}
|
241 |
+
|
242 |
+
if ( ! isset( $assoc_args['id'] ) ) {
|
243 |
+
WP_CLI::error( 'No id use --id=' );
|
244 |
+
exit;
|
245 |
+
}
|
246 |
+
$type = $assoc_args['type'];
|
247 |
+
$id = $assoc_args['id'];
|
248 |
+
$hook = false;
|
249 |
+
|
250 |
+
if ( 'part' == $type ) {
|
251 |
+
if ( ! isset( $assoc_args['hook'] ) ) {
|
252 |
+
WP_CLI::error( 'No hook use --hook=' );
|
253 |
+
exit;
|
254 |
+
}
|
255 |
+
$hook = $assoc_args['hook'];
|
256 |
+
}
|
257 |
+
|
258 |
+
if ( ! in_array( $type, array( 'archive', 'single', 'part', 'header', 'footer', '404' ) ) ) {
|
259 |
+
WP_CLI::error( __( 'Incorrect type.', 'fl-builder' ) );
|
260 |
+
exit;
|
261 |
+
}
|
262 |
+
|
263 |
+
if ( 'fl-theme-layout' == get_post_type( $id ) ) {
|
264 |
+
update_post_meta( $id, '_fl_theme_layout_type', $type );
|
265 |
+
update_post_meta( $id, '_fl_theme_layout_hook', '' );
|
266 |
+
WP_CLI::success( __( 'Layout type updated', 'fl-builder' ) );
|
267 |
+
if ( false !== $hook && 'part' == $type ) {
|
268 |
+
update_post_meta( $id, '_fl_theme_layout_hook', $hook );
|
269 |
+
WP_CLI::success( __( 'Hook updated', 'fl-builder' ) );
|
270 |
+
}
|
271 |
+
} else {
|
272 |
+
WPCLI::error( __( 'Not valid Themer layout.', 'fl-builder' ) );
|
273 |
+
}
|
274 |
+
}
|
275 |
+
|
276 |
+
/**
|
277 |
+
* List all Themer layouts.
|
278 |
+
*
|
279 |
+
* ## EXAMPLE
|
280 |
+
*
|
281 |
+
* 1. wp beaver themer list
|
282 |
+
* - Returns list of all themer layouts.
|
283 |
+
*
|
284 |
+
* @subcommand list
|
285 |
+
*/
|
286 |
+
public function themer_list( $args, $assoc_args ) {
|
287 |
+
|
288 |
+
$this->is_themer();
|
289 |
+
|
290 |
+
$results = array();
|
291 |
+
$args = array(
|
292 |
+
'post_type' => 'fl-theme-layout',
|
293 |
+
'post_status' => array( 'publish', 'draft' ),
|
294 |
+
'meta_key' => '_fl_builder_enabled',
|
295 |
+
'meta_value' => '1',
|
296 |
+
'posts_per_page' => -1,
|
297 |
+
);
|
298 |
+
$query = new WP_Query( $args );
|
299 |
+
$posts = $query->posts;
|
300 |
+
foreach ( $posts as $post ) {
|
301 |
+
$type = get_post_meta( $post->ID, '_fl_theme_layout_type', true );
|
302 |
+
$locations = get_post_meta( $post->ID, '_fl_theme_builder_locations', true );
|
303 |
+
$hook = get_post_meta( $post->ID, '_fl_theme_layout_hook', true );
|
304 |
+
$results[] = array(
|
305 |
+
'id' => $post->ID,
|
306 |
+
'status' => $post->post_status,
|
307 |
+
'name' => $post->post_title,
|
308 |
+
'type' => $type,
|
309 |
+
'hook' => $hook,
|
310 |
+
'locations' => $this->format_locations( $locations ),
|
311 |
+
);
|
312 |
+
}
|
313 |
+
|
314 |
+
$formatter = new WP_CLI\Formatter( $assoc_args, $this->fields );
|
315 |
+
$formatter->display_items( $results );
|
316 |
+
}
|
317 |
+
|
318 |
+
/**
|
319 |
+
* List all possible Themer Part Hooks.
|
320 |
+
*
|
321 |
+
* ## EXAMPLE
|
322 |
+
*
|
323 |
+
* 1. wp beaver themer list-hooks
|
324 |
+
* - Returns list of all possible themer part hooks.
|
325 |
+
* @subcommand list-hooks
|
326 |
+
*/
|
327 |
+
public function list_hooks( $args, $assoc_args ) {
|
328 |
+
|
329 |
+
$this->is_themer();
|
330 |
+
|
331 |
+
$hooks = FLThemeBuilderLayoutData::get_part_hooks();
|
332 |
+
$results = array();
|
333 |
+
|
334 |
+
$fields = array(
|
335 |
+
'name',
|
336 |
+
'hook',
|
337 |
+
);
|
338 |
+
|
339 |
+
foreach ( $hooks as $hook ) {
|
340 |
+
|
341 |
+
if ( is_array( $hook ) ) {
|
342 |
+
foreach ( $hook['hooks'] as $k => $location ) {
|
343 |
+
$results[] = array(
|
344 |
+
'name' => $location,
|
345 |
+
'hook' => $k,
|
346 |
+
);
|
347 |
+
}
|
348 |
+
}
|
349 |
+
}
|
350 |
+
|
351 |
+
$formatter = new WP_CLI\Formatter( $assoc_args, $fields );
|
352 |
+
$formatter->display_items( $results );
|
353 |
+
}
|
354 |
+
|
355 |
+
/**
|
356 |
+
* Add location to themer layout.
|
357 |
+
*
|
358 |
+
* ## OPTIONS
|
359 |
+
*
|
360 |
+
* [--id]
|
361 |
+
* Post ID of Themer layout
|
362 |
+
*
|
363 |
+
* [--location]
|
364 |
+
* Status to use, publish or draft
|
365 |
+
*
|
366 |
+
* [--postion] (Optional)
|
367 |
+
* Position in location array to insert new location
|
368 |
+
*
|
369 |
+
* ## EXAMPLES
|
370 |
+
*
|
371 |
+
* 1. wp beaver themer add-location --id=123 --location=general:single
|
372 |
+
* - Add location general:site to Themer layout 123
|
373 |
+
* 2. wp beaver themer add-location --id=123 --location=general:single --position=0
|
374 |
+
* - Add location general:site to Themer layout 123 in first element of array
|
375 |
+
* @subcommand add-location
|
376 |
+
*/
|
377 |
+
public function add_location( $args, $assoc_args ) {
|
378 |
+
|
379 |
+
$this->is_themer();
|
380 |
+
|
381 |
+
if ( ! isset( $assoc_args['location'] ) ) {
|
382 |
+
WP_CLI::error( 'No location use --location=' );
|
383 |
+
exit;
|
384 |
+
}
|
385 |
+
if ( ! isset( $assoc_args['id'] ) ) {
|
386 |
+
WP_CLI::error( 'No id use --id=' );
|
387 |
+
exit;
|
388 |
+
}
|
389 |
+
$location = $assoc_args['location'];
|
390 |
+
$id = $assoc_args['id'];
|
391 |
+
$position = isset( $assoc_args['position'] ) ? $assoc_args['position'] : false;
|
392 |
+
|
393 |
+
$locations = (array) get_post_meta( $id, '_fl_theme_builder_locations', true );
|
394 |
+
|
395 |
+
if ( false !== $position ) {
|
396 |
+
array_splice( $locations, $position, 0, $location );
|
397 |
+
} else {
|
398 |
+
$locations[] = $location;
|
399 |
+
}
|
400 |
+
|
401 |
+
update_post_meta( $id, '_fl_theme_builder_locations', array_unique( $locations ) );
|
402 |
+
|
403 |
+
$post = get_post( $id );
|
404 |
+
$results = array();
|
405 |
+
$type = get_post_meta( $post->ID, '_fl_theme_layout_type', true );
|
406 |
+
$locations = get_post_meta( $post->ID, '_fl_theme_builder_locations', true );
|
407 |
+
$hook = get_post_meta( $post->ID, '_fl_theme_layout_hook', true );
|
408 |
+
$results[] = array(
|
409 |
+
'id' => $post->ID,
|
410 |
+
'status' => $post->post_status,
|
411 |
+
'name' => $post->post_title,
|
412 |
+
'type' => $type,
|
413 |
+
'hook' => $hook,
|
414 |
+
'locations' => $this->format_locations( $locations ),
|
415 |
+
);
|
416 |
+
|
417 |
+
$formatter = new WP_CLI\Formatter( $assoc_args, $this->fields );
|
418 |
+
$formatter->display_items( $results );
|
419 |
+
}
|
420 |
+
|
421 |
+
/**
|
422 |
+
* Delete location from themer layout.
|
423 |
+
*
|
424 |
+
* ## OPTIONS
|
425 |
+
*
|
426 |
+
* [--id]
|
427 |
+
* Post ID of Themer layout
|
428 |
+
*
|
429 |
+
* [--location]
|
430 |
+
* Status to use, publish or draft
|
431 |
+
*
|
432 |
+
*
|
433 |
+
* ## EXAMPLES
|
434 |
+
*
|
435 |
+
* 1. wp beaver themer del-location --id=123 --location=general:single
|
436 |
+
* - Remove location general:site from Themer layout 123
|
437 |
+
* @subcommand del-location
|
438 |
+
*/
|
439 |
+
public function del_location( $args, $assoc_args ) {
|
440 |
+
|
441 |
+
$this->is_themer();
|
442 |
+
|
443 |
+
if ( ! isset( $assoc_args['location'] ) ) {
|
444 |
+
WP_CLI::error( 'No location use --location=' );
|
445 |
+
exit;
|
446 |
+
}
|
447 |
+
if ( ! isset( $assoc_args['id'] ) ) {
|
448 |
+
WP_CLI::error( 'No id use --id=' );
|
449 |
+
exit;
|
450 |
+
}
|
451 |
+
$location = $assoc_args['location'];
|
452 |
+
$id = $assoc_args['id'];
|
453 |
+
|
454 |
+
$locations = (array) get_post_meta( $id, '_fl_theme_builder_locations', true );
|
455 |
+
|
456 |
+
$find = array_search( $location, $locations );
|
457 |
+
|
458 |
+
if ( false !== $find ) {
|
459 |
+
unset( $locations[ $find ] );
|
460 |
+
} else {
|
461 |
+
WP_CLI::error( 'Location not found' );
|
462 |
+
}
|
463 |
+
|
464 |
+
update_post_meta( $id, '_fl_theme_builder_locations', array_unique( $locations ) );
|
465 |
+
|
466 |
+
$post = get_post( $id );
|
467 |
+
$results = array();
|
468 |
+
$type = get_post_meta( $post->ID, '_fl_theme_layout_type', true );
|
469 |
+
$locations = get_post_meta( $post->ID, '_fl_theme_builder_locations', true );
|
470 |
+
$hook = get_post_meta( $post->ID, '_fl_theme_layout_hook', true );
|
471 |
+
$results[] = array(
|
472 |
+
'id' => $post->ID,
|
473 |
+
'status' => $post->post_status,
|
474 |
+
'name' => $post->post_title,
|
475 |
+
'type' => $type,
|
476 |
+
'hook' => $hook,
|
477 |
+
'locations' => $this->format_locations( $locations ),
|
478 |
+
);
|
479 |
+
|
480 |
+
$formatter = new WP_CLI\Formatter( $assoc_args, $this->fields );
|
481 |
+
$formatter->display_items( $results );
|
482 |
+
}
|
483 |
+
|
484 |
+
protected function is_themer() {
|
485 |
+
if ( ! class_exists( 'FLThemeBuilder' ) ) {
|
486 |
+
WP_CLI::error( __( 'Unable to find Themer, is it installed and activated?', 'fl-builder' ) );
|
487 |
+
exit;
|
488 |
+
}
|
489 |
+
}
|
490 |
+
|
491 |
+
protected function format_locations( $data ) {
|
492 |
+
return implode( ', ', $data );
|
493 |
+
}
|
494 |
+
}
|
495 |
+
/**
|
496 |
+
* Add WPCLI commands
|
497 |
+
*/
|
498 |
WP_CLI::add_command( 'beaver', 'FLbuilder_WPCLI_Command' );
|
499 |
+
WP_CLI::add_command( 'beaver themer', 'FLThemer_List_WPCLI_Command' );
|
classes/class-fl-builder.php
CHANGED
@@ -67,8 +67,8 @@ final class FLBuilder {
|
|
67 |
* Font awesome urls.
|
68 |
* @since 2.1
|
69 |
*/
|
70 |
-
static public $fa4_url = '
|
71 |
-
static public $fa5_pro_url = 'https://pro.fontawesome.com/releases/v5.8.
|
72 |
|
73 |
/**
|
74 |
* Initializes hooks.
|
@@ -100,6 +100,7 @@ final class FLBuilder {
|
|
100 |
add_filter( 'tiny_mce_before_init', __CLASS__ . '::editor_font_sizes' );
|
101 |
add_filter( 'the_content', __CLASS__ . '::render_content' );
|
102 |
add_filter( 'wp_handle_upload_prefilter', __CLASS__ . '::wp_handle_upload_prefilter_filter' );
|
|
|
103 |
}
|
104 |
|
105 |
/**
|
@@ -389,21 +390,23 @@ final class FLBuilder {
|
|
389 |
wp_register_style( 'yui3', $css_url . 'yui3.css', array(), $ver );
|
390 |
|
391 |
// Register icon CDN CSS
|
392 |
-
wp_register_style( 'font-awesome', self::$fa4_url, array(), $ver );
|
393 |
wp_register_style( 'font-awesome-5', self::get_fa5_url(), array(), $ver );
|
|
|
|
|
394 |
wp_register_style( 'foundation-icons', 'https://cdnjs.cloudflare.com/ajax/libs/foundicons/3.0.0/foundation-icons.css', array(), $ver );
|
395 |
|
396 |
// Register additional JS
|
397 |
wp_register_script( 'fl-slideshow', $js_url . 'fl-slideshow' . $min . '.js', array( 'yui3' ), $ver, true );
|
398 |
wp_register_script( 'fl-gallery-grid', $js_url . 'fl-gallery-grid.js', array( 'jquery' ), $ver, true );
|
399 |
-
wp_register_script( 'jquery-bxslider', $js_url . 'jquery.bxslider.js', array( 'jquery-easing', 'jquery-fitvids' ), $ver, true );
|
400 |
wp_register_script( 'jquery-easing', $js_url . 'jquery.easing.min.js', array( 'jquery' ), '1.4', true );
|
401 |
wp_register_script( 'jquery-fitvids', $js_url . 'jquery.fitvids.min.js', array( 'jquery' ), '1.2', true );
|
402 |
wp_register_script( 'jquery-infinitescroll', $js_url . 'jquery.infinitescroll.min.js', array( 'jquery' ), $ver, true );
|
403 |
-
wp_register_script( 'jquery-magnificpopup', $js_url . 'jquery.magnificpopup.min.js', array( 'jquery' ), $ver, true );
|
404 |
-
wp_register_script( 'jquery-mosaicflow', $js_url . 'jquery.mosaicflow.min.js', array( 'jquery' ), $ver, true );
|
405 |
wp_register_script( 'jquery-waypoints', $js_url . 'jquery.waypoints.min.js', array( 'jquery' ), $ver, true );
|
406 |
wp_register_script( 'jquery-wookmark', $js_url . 'jquery.wookmark.min.js', array( 'jquery' ), $ver, true );
|
|
|
407 |
wp_register_script( 'yui3', $js_url . 'yui3.min.js', array(), $ver, true );
|
408 |
wp_register_script( 'youtube-player', 'https://www.youtube.com/iframe_api', array(), $ver, true );
|
409 |
wp_register_script( 'vimeo-player', 'https://player.vimeo.com/api/player.js', array(), $ver, true );
|
@@ -658,13 +661,6 @@ final class FLBuilder {
|
|
658 |
|
659 |
/* Frontend builder styles */
|
660 |
wp_enqueue_style( 'dashicons' );
|
661 |
-
|
662 |
-
/**
|
663 |
-
* FA4 css and FA5 css do not mix well and actually break some of the icvons in the selector.
|
664 |
-
*/
|
665 |
-
if ( in_array( 'font-awesome', FLBuilderModel::get_enabled_icons() ) ) {
|
666 |
-
wp_enqueue_style( 'font-awesome' );
|
667 |
-
}
|
668 |
wp_enqueue_style( 'font-awesome-5' );
|
669 |
wp_enqueue_style( 'foundation-icons' );
|
670 |
wp_enqueue_style( 'jquery-nanoscroller', $css_url . 'jquery.nanoscroller.css', array(), $ver );
|
@@ -738,7 +734,8 @@ final class FLBuilder {
|
|
738 |
wp_enqueue_script( 'fl-lightbox', $js_url . 'fl-lightbox.js', array(), $ver );
|
739 |
wp_enqueue_script( 'fl-icon-selector', $js_url . 'fl-icon-selector.js', array(), $ver );
|
740 |
wp_enqueue_script( 'fl-stylesheet', $js_url . 'fl-stylesheet.js', array(), $ver );
|
741 |
-
wp_enqueue_script( 'fl-builder', $js_url . 'fl-builder.js', array(), $ver );
|
|
|
742 |
wp_enqueue_script( 'fl-builder-ajax-layout', $js_url . 'fl-builder-ajax-layout.js', array(), $ver );
|
743 |
wp_enqueue_script( 'fl-builder-preview', $js_url . 'fl-builder-preview.js', array(), $ver );
|
744 |
wp_enqueue_script( 'fl-builder-simulate-media-query', $js_url . 'fl-builder-simulate-media-query.js', array(), $ver );
|
@@ -1323,10 +1320,16 @@ final class FLBuilder {
|
|
1323 |
if ( '' == $icon_url ) {
|
1324 |
$wrapper_classes[] = 'fl-builder-bar-title-no-icon';
|
1325 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
1326 |
|
1327 |
-
|
1328 |
-
$pretitle
|
1329 |
-
$pretitle
|
1330 |
|
1331 |
// Render the bar title.
|
1332 |
include FL_BUILDER_DIR . 'includes/ui-bar-title-area.php';
|
@@ -1476,7 +1479,7 @@ final class FLBuilder {
|
|
1476 |
self::enqueue_layout_styles_scripts_by_id( $query_post->ID );
|
1477 |
|
1478 |
// Print the styles if we are outside of the head tag.
|
1479 |
-
if ( did_action( 'wp_enqueue_scripts' ) && 'wp_enqueue_scripts'
|
1480 |
wp_print_styles();
|
1481 |
}
|
1482 |
|
@@ -2109,7 +2112,7 @@ final class FLBuilder {
|
|
2109 |
'data-node' => $group->node,
|
2110 |
);
|
2111 |
|
2112 |
-
if ( 'column' == $parent->type ) {
|
2113 |
$attrs['class'][] = 'fl-col-group-nested';
|
2114 |
}
|
2115 |
|
@@ -3390,6 +3393,7 @@ final class FLBuilder {
|
|