Page Builder: PageLayer – Drag and Drop website builder - Version 1.7.2

Version Description

(Nov 04, 2022) = * [Feature] Added setting to add content when body is open on Pagelayer -> website settings page. * [Task] Allow to add otf extension font files to Pagelayer custom font. * [Bug-Fix] On turning on the error report in PHP, some PHP error notice was shown. This is fixed. * [Bug Fix] The post guid was not updated properly when cloning the post. This is fixed. * [Bug Fix] In certain cases scripts were not loaded properly in the Pagelayer editor. This is fixed.

Download this release

Release Info

Developer pagelayer
Plugin Icon 128x128 Page Builder: PageLayer – Drag and Drop website builder
Version 1.7.2
Comparing to
See all releases

Code changes from version 1.7.1 to 1.7.2

css/customizer.css CHANGED
@@ -11,10 +11,8 @@ font-weight: 600;
11
  font-style: normal;
12
  }
13
 
14
- .pagelayer-customize-heading:after{
15
- content: "\f345";
16
  color: #a7aaad;
17
- font-family: 'dashicons';
18
  font-size: 16px;
19
  position: absolute;
20
  right: 5px;
@@ -22,10 +20,6 @@ top: 50%;
22
  transform: translateY(-50%);
23
  }
24
 
25
- .pagelayer-active-accordion-tab .pagelayer-customize-heading:after{
26
- content: "\f347";
27
- }
28
-
29
  .pagelayer-customize-control .customize-control-title{
30
  font-weight: 400;
31
  }
@@ -160,6 +154,10 @@ color:#137dc5;
160
  }
161
  /* pagelayer units end*/
162
  /* Alpha Color Picker CSS */
 
 
 
 
163
  .customize-control-pagelayer-alpha-color .wp-picker-container,
164
  .pagelayer-control-typo-icons-holder{
165
  position: absolute;
@@ -188,15 +186,15 @@ position: absolute;
188
  right: 38px;
189
  top: 0;
190
  background: #fff;
191
- padding: 3px 6px;
192
  border-radius: 4px;
193
  border: 1px solid #999;
194
  cursor: pointer;
195
- height: 22px;
196
  display: inline-flex;
197
  justify-content: center;
198
  align-items: center;
199
  font-size: 18px;
 
200
  }
201
 
202
  .customize-control-pagelayer-alpha-color .wp-color-result:hover,
@@ -243,6 +241,7 @@ width:100%;
243
 
244
  .customize-control-pagelayer-alpha-color .wp-picker-input-wrap input[type="button"].wp-picker-default{
245
  flex:auto;
 
246
  }
247
 
248
  .customize-control-pagelayer-alpha-color .wp-picker-holder{
11
  font-style: normal;
12
  }
13
 
14
+ .pagelayer-customize-heading .dashicons{
 
15
  color: #a7aaad;
 
16
  font-size: 16px;
17
  position: absolute;
18
  right: 5px;
20
  transform: translateY(-50%);
21
  }
22
 
 
 
 
 
23
  .pagelayer-customize-control .customize-control-title{
24
  font-weight: 400;
25
  }
154
  }
155
  /* pagelayer units end*/
156
  /* Alpha Color Picker CSS */
157
+ .wp-picker-input-wrap label {
158
+ margin-bottom: 0 !important;
159
+ }
160
+
161
  .customize-control-pagelayer-alpha-color .wp-picker-container,
162
  .pagelayer-control-typo-icons-holder{
163
  position: absolute;
186
  right: 38px;
187
  top: 0;
188
  background: #fff;
 
189
  border-radius: 4px;
190
  border: 1px solid #999;
191
  cursor: pointer;
192
+ height: 30px;
193
  display: inline-flex;
194
  justify-content: center;
195
  align-items: center;
196
  font-size: 18px;
197
+ width: 35px;
198
  }
199
 
200
  .customize-control-pagelayer-alpha-color .wp-color-result:hover,
241
 
242
  .customize-control-pagelayer-alpha-color .wp-picker-input-wrap input[type="button"].wp-picker-default{
243
  flex:auto;
244
+ height: 27px;
245
  }
246
 
247
  .customize-control-pagelayer-alpha-color .wp-picker-holder{
init.php CHANGED
@@ -5,7 +5,7 @@ if (!defined('ABSPATH')) exit;
5
 
6
  define('PAGELAYER_BASE', plugin_basename(PAGELAYER_FILE));
7
  define('PAGELAYER_PRO_BASE', 'pagelayer-pro/pagelayer-pro.php');
8
- define('PAGELAYER_VERSION', '1.7.1');
9
  define('PAGELAYER_DIR', dirname(PAGELAYER_FILE));
10
  define('PAGELAYER_SLUG', 'pagelayer');
11
  define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
@@ -199,6 +199,7 @@ function pagelayer_load_plugin(){
199
  include_once(PAGELAYER_DIR.'/main/template-builder.php');
200
 
201
  $pagelayer->allowed_mime_type = array(
 
202
  'ttf' => 'font/ttf',
203
  'woff' => 'font/woff|application/font-woff|application/x-font-woff',
204
  'woff2' => 'font/woff2|font/x-woff2'
@@ -459,17 +460,24 @@ function pagelayer_save_post( $post_id, $post, $update ) {
459
  return;
460
  }
461
 
462
- // Save Header and footer code
463
  $header_code = !empty($_REQUEST['pagelayer_header_code']) ? $_REQUEST['pagelayer_header_code'] : '' ;
 
464
  $footer_code = !empty($_REQUEST['pagelayer_footer_code']) ? $_REQUEST['pagelayer_footer_code'] : '' ;
465
 
466
- // Set Custom header footer code
467
  if(!empty($header_code)){
468
  update_post_meta($post_id, 'pagelayer_header_code', $header_code);
469
  }else{
470
  delete_post_meta($post_id, 'pagelayer_header_code');
471
  }
472
 
 
 
 
 
 
 
473
  if(!empty($footer_code)){
474
  update_post_meta($post_id, 'pagelayer_footer_code', $footer_code);
475
  }else{
@@ -1304,6 +1312,7 @@ function pagelayer_clone_post(){
1304
  $post->post_title = $post->post_title.' Clone';
1305
  $post->post_date = '';
1306
  $post->post_date_gmt = '';
 
1307
 
1308
  $new_post_id = wp_insert_post( $post );
1309
 
@@ -1399,6 +1408,27 @@ function pagelayer_add_custom_head(){
1399
 
1400
  }
1401
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1402
  // Add custom footer
1403
  add_action('wp_footer', 'pagelayer_add_custom_footer');
1404
  function pagelayer_add_custom_footer(){
5
 
6
  define('PAGELAYER_BASE', plugin_basename(PAGELAYER_FILE));
7
  define('PAGELAYER_PRO_BASE', 'pagelayer-pro/pagelayer-pro.php');
8
+ define('PAGELAYER_VERSION', '1.7.2');
9
  define('PAGELAYER_DIR', dirname(PAGELAYER_FILE));
10
  define('PAGELAYER_SLUG', 'pagelayer');
11
  define('PAGELAYER_URL', plugins_url('', PAGELAYER_FILE));
199
  include_once(PAGELAYER_DIR.'/main/template-builder.php');
200
 
201
  $pagelayer->allowed_mime_type = array(
202
+ 'otf' => 'font/otf',
203
  'ttf' => 'font/ttf',
204
  'woff' => 'font/woff|application/font-woff|application/x-font-woff',
205
  'woff2' => 'font/woff2|font/x-woff2'
460
  return;
461
  }
462
 
463
+ // Save Header, body and footer code
464
  $header_code = !empty($_REQUEST['pagelayer_header_code']) ? $_REQUEST['pagelayer_header_code'] : '' ;
465
+ $body_code = !empty($_REQUEST['pagelayer_body_open_code']) ? $_REQUEST['pagelayer_body_open_code'] : '' ;
466
  $footer_code = !empty($_REQUEST['pagelayer_footer_code']) ? $_REQUEST['pagelayer_footer_code'] : '' ;
467
 
468
+ // Set Custom header, body and footer code
469
  if(!empty($header_code)){
470
  update_post_meta($post_id, 'pagelayer_header_code', $header_code);
471
  }else{
472
  delete_post_meta($post_id, 'pagelayer_header_code');
473
  }
474
 
475
+ if(!empty($body_code)){
476
+ update_post_meta($post_id, 'pagelayer_body_open_code', $body_code);
477
+ }else{
478
+ delete_post_meta($post_id, 'pagelayer_body_open_code');
479
+ }
480
+
481
  if(!empty($footer_code)){
482
  update_post_meta($post_id, 'pagelayer_footer_code', $footer_code);
483
  }else{
1312
  $post->post_title = $post->post_title.' Clone';
1313
  $post->post_date = '';
1314
  $post->post_date_gmt = '';
1315
+ $post->guid = '';
1316
 
1317
  $new_post_id = wp_insert_post( $post );
1318
 
1408
 
1409
  }
1410
 
1411
+ // Add custom body
1412
+ add_action('wp_body_open', 'pagelayer_body_open');
1413
+ function pagelayer_body_open(){
1414
+ global $post;
1415
+
1416
+ $global_code = wp_unslash( get_option('pagelayer_body_open_code') );
1417
+
1418
+ if(!empty($post)){
1419
+ $body_code = get_post_meta($post->ID , 'pagelayer_body_open_code', true);
1420
+ }
1421
+
1422
+ if(!empty($global_code)){
1423
+ echo $global_code."\n";
1424
+ }
1425
+
1426
+ if(!empty($body_code)){
1427
+ echo $body_code."\n";
1428
+ }
1429
+
1430
+ }
1431
+
1432
  // Add custom footer
1433
  add_action('wp_footer', 'pagelayer_add_custom_footer');
1434
  function pagelayer_add_custom_footer(){
js/customizer.js CHANGED
@@ -266,6 +266,18 @@ jQuery(document).ready( function(){
266
  toggle.nextUntil('.pagelayer-accordion-tab').slideToggle();
267
 
268
  toggle.toggleClass('pagelayer-active-accordion-tab');
 
 
 
 
 
 
 
 
 
 
 
 
269
  });
270
 
271
  // Close all accordion tabs
266
  toggle.nextUntil('.pagelayer-accordion-tab').slideToggle();
267
 
268
  toggle.toggleClass('pagelayer-active-accordion-tab');
269
+
270
+ var dash = toggle.find('.pagelayer-customize-heading .dashicons');
271
+ var allDash = toggle.closest('ul').find('.pagelayer-accordion-tab .pagelayer-customize-heading .dashicons');
272
+
273
+ allDash.addClass('dashicons-arrow-right-alt2');
274
+ allDash.removeClass('dashicons-arrow-down-alt2');
275
+
276
+ if(toggle.hasClass('pagelayer-active-accordion-tab')){
277
+ dash.addClass('dashicons-arrow-down-alt2');
278
+ dash.removeClass('dashicons-arrow-right-alt2');
279
+ }
280
+
281
  });
282
 
283
  // Close all accordion tabs
js/properties.js CHANGED
@@ -342,7 +342,6 @@ function pagelayer_elpd_generate(jEle, holder){
342
  var props = section in pagelayer_shortcodes[el.tag] ? pagelayer_shortcodes[el.tag][section] : pagelayer_styles[section];
343
  //console.log(props);
344
 
345
-
346
  var sec = jQuery('<div class="pagelayer-elpd-section" section="'+section+'" pagelayer-show-tab="'+tab+'">'+
347
  '<div class="pagelayer-elpd-section-name '+sec_open_class+'"><i class="pli"></i>'+all_props[tab][section]+'</div>'+
348
  '<div class="pagelayer-elpd-section-rows"></div>'+
@@ -4458,14 +4457,17 @@ function pagelayer_elp_postCategory(row, prop){
4458
  var checked_list = '';
4459
  var unchecked_list = '';
4460
 
4461
- for(var list of jQuery(with_checkbox).children()){
 
4462
  var temp = jQuery(list).find('input[checked=checked]');
 
4463
  if(!pagelayer_empty(temp.length)){
4464
  checked_list += list.outerHTML;
4465
  }else{
4466
  unchecked_list += list.outerHTML;
4467
  }
4468
- }
 
4469
 
4470
  return ('<div class="pagelayer-post-cat-div" ><ul class="pagelayer-post-category" >'+checked_list+unchecked_list+'</ul></div>');
4471
  }
342
  var props = section in pagelayer_shortcodes[el.tag] ? pagelayer_shortcodes[el.tag][section] : pagelayer_styles[section];
343
  //console.log(props);
344
 
 
345
  var sec = jQuery('<div class="pagelayer-elpd-section" section="'+section+'" pagelayer-show-tab="'+tab+'">'+
346
  '<div class="pagelayer-elpd-section-name '+sec_open_class+'"><i class="pli"></i>'+all_props[tab][section]+'</div>'+
347
  '<div class="pagelayer-elpd-section-rows"></div>'+
4457
  var checked_list = '';
4458
  var unchecked_list = '';
4459
 
4460
+ jQuery(with_checkbox).children().each(function(){
4461
+ var list = this;
4462
  var temp = jQuery(list).find('input[checked=checked]');
4463
+
4464
  if(!pagelayer_empty(temp.length)){
4465
  checked_list += list.outerHTML;
4466
  }else{
4467
  unchecked_list += list.outerHTML;
4468
  }
4469
+
4470
+ });
4471
 
4472
  return ('<div class="pagelayer-post-cat-div" ><ul class="pagelayer-post-category" >'+checked_list+unchecked_list+'</ul></div>');
4473
  }
main/ajax.php CHANGED
@@ -1968,7 +1968,7 @@ function pagelayer_export_template(){
1968
  }
1969
 
1970
  // Export the settings
1971
- $settings = ['pagelayer_content_width', 'pagelayer_body_font', 'pagelayer_tablet_breakpoint', 'pagelayer_mobile_breakpoint', 'pagelayer_header_code', 'pagelayer_footer_code', 'pagelayer_sidebar', 'page_for_posts', 'pagelayer_global_fonts', 'pagelayer_global_colors'];
1972
 
1973
  foreach($settings as $v){
1974
 
1968
  }
1969
 
1970
  // Export the settings
1971
+ $settings = ['pagelayer_content_width', 'pagelayer_body_font', 'pagelayer_tablet_breakpoint', 'pagelayer_mobile_breakpoint', 'pagelayer_header_code','pagelayer_body_open_code', 'pagelayer_footer_code', 'pagelayer_sidebar', 'page_for_posts', 'pagelayer_global_fonts', 'pagelayer_global_colors'];
1972
 
1973
  foreach($settings as $v){
1974
 
main/custom_fonts.php CHANGED
@@ -191,7 +191,7 @@ function pagelayer_font_link_metabox($object){
191
  }
192
 
193
  function fontUpload(e){
194
- var allowed_mime_type = ['.ttf', '.woff', '.woff2'];
195
  var allClear = false;
196
  var custom_uploader = wp.media({
197
  title: 'Upload Font',
@@ -213,7 +213,7 @@ function pagelayer_font_link_metabox($object){
213
  if(allClear){
214
  jQuery('.pagelayer_font_input').val(attachment['url']);
215
  }else{
216
- alert('Kindly insert a correct font file. Allowed font file types are (ttf|woff|woff2)');
217
  }
218
  }).open();
219
  }
191
  }
192
 
193
  function fontUpload(e){
194
+ var allowed_mime_type = ['.ttf', '.woff', '.woff2','.otf'];
195
  var allClear = false;
196
  var custom_uploader = wp.media({
197
  title: 'Upload Font',
213
  if(allClear){
214
  jQuery('.pagelayer_font_input').val(attachment['url']);
215
  }else{
216
+ alert('Kindly insert a correct font file. Allowed font file types are (otf|ttf|woff|woff2)');
217
  }
218
  }).open();
219
  }
main/customizer.php CHANGED
@@ -220,7 +220,7 @@ function pagelayer_customize_register( $wp_customize ) {
220
  $wp_customize, 'pagelayer_lable_'.$setting_name, array(
221
  'type' => 'hidden',
222
  'section' => $global_section,
223
- 'description' => sprintf( __('<div class="pagelayer-customize-heading"><div>%s</div></div>', 'pagelayer'), $sv.' '.$setv['name']),
224
  'li_class' => 'pagelayer-accordion-tab',
225
  )
226
  ));
@@ -303,18 +303,23 @@ function pagelayer_customize_register( $wp_customize ) {
303
  *
304
  * @return void
305
  */
306
- function pagelayer_register_typo_customizer_control($wp_customize, $args){
307
 
308
  $settings_for_control = array();
309
  $settings = array('font-family', 'font-size', 'font-style', 'font-weight', 'font-variant', 'text-decoration-line', 'text-decoration-style', 'line-height', 'text-transform', 'letter-spacing', 'word-spacing', 'global-font');
310
  $screens = array('');
 
311
 
312
  if(!empty($args['responsive'])){
313
- $screens = array('', '_tablet', '_mobile');
 
 
 
 
314
  }
315
 
316
  // Register settings
317
- foreach($screens as $screen){
318
  foreach($settings as $setting){
319
 
320
  // Skip units for responsive
@@ -322,7 +327,15 @@ function pagelayer_register_typo_customizer_control($wp_customize, $args){
322
  continue;
323
  }
324
 
325
- $setting_name = $args['control'].$screen.'['.$setting.']';
 
 
 
 
 
 
 
 
326
  $settings_for_control[$setting.$screen] = $setting_name;
327
 
328
  $setting_args = array(
@@ -345,7 +358,7 @@ function pagelayer_register_typo_customizer_control($wp_customize, $args){
345
  $args['settings'] = $settings_for_control;
346
 
347
  $wp_customize->add_control( new Pagelayer_typo_Control(
348
- $wp_customize, $args['control'], $args
349
  ));
350
  }
351
 
220
  $wp_customize, 'pagelayer_lable_'.$setting_name, array(
221
  'type' => 'hidden',
222
  'section' => $global_section,
223
+ 'description' => sprintf( __('<div class="pagelayer-customize-heading"><div>%s</div><span class="dashicons dashicons-arrow-right-alt2"></span></div>', 'pagelayer'), $sv.' '.$setv['name']),
224
  'li_class' => 'pagelayer-accordion-tab',
225
  )
226
  ));
303
  *
304
  * @return void
305
  */
306
+ function pagelayer_register_typo_customizer_control($wp_customize, $args, $screen_array = false){
307
 
308
  $settings_for_control = array();
309
  $settings = array('font-family', 'font-size', 'font-style', 'font-weight', 'font-variant', 'text-decoration-line', 'text-decoration-style', 'line-height', 'text-transform', 'letter-spacing', 'word-spacing', 'global-font');
310
  $screens = array('');
311
+ $control_array_sufix = '';
312
 
313
  if(!empty($args['responsive'])){
314
+ $screens = array('desktop' => '', 'tablet' => '_tablet', 'mobile' => '_mobile');
315
+ }
316
+
317
+ if(!empty($args['control_array_sufix'])){
318
+ $control_array_sufix = '['.$args['control_array_sufix'].']';
319
  }
320
 
321
  // Register settings
322
+ foreach($screens as $_screen => $screen){
323
  foreach($settings as $setting){
324
 
325
  // Skip units for responsive
327
  continue;
328
  }
329
 
330
+ $setting_name = $args['control'];
331
+
332
+ if($screen_array && count($screens) > 1){
333
+ $setting_name .= $control_array_sufix.'['.$_screen.']';
334
+ }else{
335
+ $setting_name .= $screen.$control_array_sufix;
336
+ }
337
+
338
+ $setting_name .= '['.$setting.']';
339
  $settings_for_control[$setting.$screen] = $setting_name;
340
 
341
  $setting_args = array(
358
  $args['settings'] = $settings_for_control;
359
 
360
  $wp_customize->add_control( new Pagelayer_typo_Control(
361
+ $wp_customize, $args['control']. @$args['control_array_sufix'], $args
362
  ));
363
  }
364
 
main/live.php CHANGED
@@ -31,9 +31,7 @@ class PageLayer_LiveEditor{
31
  function __construct() {
32
 
33
  global $pagelayer;
34
-
35
- $GLOBALS['concatenate_scripts'] = true;
36
-
37
  // Convert the post to a PageLayer Post first
38
  $this->check_post();
39
 
31
  function __construct() {
32
 
33
  global $pagelayer;
34
+
 
 
35
  // Convert the post to a PageLayer Post first
36
  $this->check_post();
37
 
main/post_metas.php CHANGED
@@ -104,7 +104,7 @@ function pagelayer_meta_page(){
104
  'class' => 'pagelayer-active-item',
105
  ),
106
  'hf_code' => array(
107
- 'label' => __('Header and Footer'),
108
  'icon' => 'dashicons dashicons-editor-code',
109
  ),
110
  );
@@ -180,6 +180,7 @@ background-clip: padding-box;
180
  font-size: 14px;
181
  font-weight: 600;
182
  color : 333;
 
183
  }
184
 
185
  .pagelayer-tab-wrap,
@@ -509,13 +510,13 @@ function pagelayer_post_title(){
509
  <?php
510
  }
511
 
512
- // Header and footer code
513
  function pagelayer_post_hf_code(){
514
  global $post_type, $post_type_object, $post, $wp_meta_boxes, $current_screen, $user_ID, $post_ID;
515
 
516
  ?>
517
  <div class="pagelayer-modal-header">
518
- <h2><?php _e('Header and Footer Code') ?></h2>
519
  </div>
520
  <div class="pagelayer-modal-body">
521
  <div class="pagelayer-inner-body">
@@ -526,6 +527,11 @@ function pagelayer_post_hf_code(){
526
  <textarea name="pagelayer_header_code" placeholder="Enter your code to add in header" rows="10" class="pagelayer-textarea"><?php echo get_post_meta( $post_ID, 'pagelayer_header_code', true ); ?></textarea>
527
  <p> <?php echo __('This code will be printed in <code>&lt;head&gt;</code> Section.') ?> </p>
528
 
 
 
 
 
 
529
  <!-- Header Code-->
530
  <label class="pagelayer-block"><?php _e('Footer Code'); ?> :- </label>
531
  <textarea name="pagelayer_footer_code" placeholder="Enter your code to add in Footer" rows="10" class="pagelayer-textarea"><?php echo get_post_meta( $post_ID, 'pagelayer_footer_code', true ); ?></textarea>
104
  'class' => 'pagelayer-active-item',
105
  ),
106
  'hf_code' => array(
107
+ 'label' => __('Header, Body and Footer'),
108
  'icon' => 'dashicons dashicons-editor-code',
109
  ),
110
  );
180
  font-size: 14px;
181
  font-weight: 600;
182
  color : 333;
183
+ z-index: 999999;
184
  }
185
 
186
  .pagelayer-tab-wrap,
510
  <?php
511
  }
512
 
513
+ // Header body and footer code
514
  function pagelayer_post_hf_code(){
515
  global $post_type, $post_type_object, $post, $wp_meta_boxes, $current_screen, $user_ID, $post_ID;
516
 
517
  ?>
518
  <div class="pagelayer-modal-header">
519
+ <h2><?php _e('Header, Body and Footer Code') ?></h2>
520
  </div>
521
  <div class="pagelayer-modal-body">
522
  <div class="pagelayer-inner-body">
527
  <textarea name="pagelayer_header_code" placeholder="Enter your code to add in header" rows="10" class="pagelayer-textarea"><?php echo get_post_meta( $post_ID, 'pagelayer_header_code', true ); ?></textarea>
528
  <p> <?php echo __('This code will be printed in <code>&lt;head&gt;</code> Section.') ?> </p>
529
 
530
+ <!-- Body Open Code-->
531
+ <label class="pagelayer-block"><?php _e('Body Open Code'); ?> :- </label>
532
+ <textarea name="pagelayer_body_open_code" placeholder="Enter your code to add in body open" rows="10" class="pagelayer-textarea"><?php echo get_post_meta( $post_ID, 'pagelayer_body_open_code', true ); ?></textarea>
533
+ <p> <?php echo __('This code will be printed begning of the <code>&lt;body&gt;</code> Section.') ?> </p>
534
+
535
  <!-- Header Code-->
536
  <label class="pagelayer-block"><?php _e('Footer Code'); ?> :- </label>
537
  <textarea name="pagelayer_footer_code" placeholder="Enter your code to add in Footer" rows="10" class="pagelayer-textarea"><?php echo get_post_meta( $post_ID, 'pagelayer_footer_code', true ); ?></textarea>
main/website.php CHANGED
@@ -136,7 +136,14 @@ function pagelayer_website_settings(){
136
  }else{
137
  delete_option('pagelayer_header_code');
138
  }
139
-
 
 
 
 
 
 
 
140
  // Save Footer code
141
  if(isset($_REQUEST['pagelayer_footer_code'])){
142
  update_option( 'pagelayer_footer_code', wp_unslash($_REQUEST['pagelayer_footer_code'] ));
@@ -336,7 +343,7 @@ function pagelayer_website_settings_T(){
336
  <table width="100%">
337
  <tr>
338
  <td colspan="2">
339
- <b><?php echo __('Header and Footer code');?> :</b>
340
  <p><?php echo __('You can add custom code like HTML, JavaScript, CSS etc. which will be inserted throughout your site.');?></p>
341
  </td>
342
  </tr>
@@ -347,6 +354,14 @@ function pagelayer_website_settings_T(){
347
  <p> <?php echo __('This code will be printed in <code>&lt;head&gt;</code> Section.') ?> </p>
348
  </td>
349
  </tr>
 
 
 
 
 
 
 
 
350
  <tr>
351
  <th valign="top"><?php echo __('Footer Code');?> : </th>
352
  <td>
136
  }else{
137
  delete_option('pagelayer_header_code');
138
  }
139
+
140
+ // Save Body open code
141
+ if(isset($_REQUEST['pagelayer_body_open_code'])){
142
+ update_option('pagelayer_body_open_code', wp_unslash($_REQUEST['pagelayer_body_open_code'] ));
143
+ }else{
144
+ delete_option('pagelayer_body_open_code');
145
+ }
146
+
147
  // Save Footer code
148
  if(isset($_REQUEST['pagelayer_footer_code'])){
149
  update_option( 'pagelayer_footer_code', wp_unslash($_REQUEST['pagelayer_footer_code'] ));
343
  <table width="100%">
344
  <tr>
345
  <td colspan="2">
346
+ <b><?php echo __('Header, Body and Footer code');?> :</b>
347
  <p><?php echo __('You can add custom code like HTML, JavaScript, CSS etc. which will be inserted throughout your site.');?></p>
348
  </td>
349
  </tr>
354
  <p> <?php echo __('This code will be printed in <code>&lt;head&gt;</code> Section.') ?> </p>
355
  </td>
356
  </tr>
357
+ <tr>
358
+ <th valign="top"><?php echo __('Body Open Code');?> : </th>
359
+ <td>
360
+ <textarea name="pagelayer_body_open_code" style="width:80%;" rows="10"><?php echo get_option( 'pagelayer_body_open_code' ); ?></textarea>
361
+ <p> <?php echo __('This code will be printed from begning of the <code>&lt;body&gt;</code> Section.') ?> </p>
362
+ </td>
363
+ </tr>
364
+ <tr>
365
  <tr>
366
  <th valign="top"><?php echo __('Footer Code');?> : </th>
367
  <td>
main/woocommerce.php CHANGED
@@ -58,9 +58,17 @@ add_filter('wp_nav_menu_items', 'pagelayer_add_woo_cart', 10, 2);
58
  add_filter('wp_page_menu', 'pagelayer_add_woo_cart', 10, 2);
59
  function pagelayer_add_woo_cart($items, $args) {
60
 
 
 
 
 
 
 
 
 
61
  $options = pagelayer_get_customize_options();
62
 
63
- if( $options['woo_enable_menu_cart'] ) {
64
  $items .= '<li class="page-item pagelayer-menu-cart cart-customlocation menu-item menu-item-type-post_type menu-item-object-page"><a href=""><span class="dashicons dashicons-cart"></span><sup></sup></a></li>';
65
  }
66
 
@@ -203,7 +211,7 @@ function pagelayer_woocommerce_styles(){
203
  // Apply customizer css
204
  foreach($woo_styles as $key => $rules){
205
 
206
- $value = $options[$key];
207
 
208
  if(empty($value) && $value != '0'){
209
  continue;
@@ -321,7 +329,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
321
  'priority' => 1,
322
  'title' => __('Store Notice'),
323
  'description' => '<strong><a href="customize.php?autofocus[section]=woocommerce_store_notice">'.__('Click here') .'</a> '. __('to enable the store notice') .'</strong>',
324
- ),
325
  );
326
 
327
  // Adds Customizer settings
@@ -329,7 +337,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
329
  'type' => 'option',
330
  'capability' => 'edit_theme_options',
331
  'transport' => 'refresh',
332
- ),
333
  );
334
 
335
  $wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_notice_bg_color]', array(
@@ -344,7 +352,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
344
  'type' => 'option',
345
  'capability' => 'edit_theme_options',
346
  'transport' => 'refresh',
347
- ),
348
  );
349
 
350
  $wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_notice_color]', array(
@@ -359,7 +367,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
359
  'type' => 'option',
360
  'capability' => 'edit_theme_options',
361
  'transport' => 'refresh',
362
- ),
363
  );
364
 
365
  $wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_notice_a_color]', array(
@@ -374,7 +382,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
374
  'type' => 'option',
375
  'capability' => 'edit_theme_options',
376
  'transport' => 'refresh',
377
- ),
378
  );
379
 
380
  $wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_notice_a_hover_color]', array(
@@ -389,7 +397,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
389
  'panel' => 'pgl_woocommerce',
390
  'title' => __('General'),
391
  'priority' => 2,
392
- ),
393
  );
394
 
395
  // Adds Customizer settings
@@ -397,7 +405,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
397
  'type' => 'option',
398
  'capability' => 'edit_theme_options',
399
  'transport' => 'refresh',
400
- ),
401
  );
402
 
403
  $wp_customize->add_setting( 'pagelayer_lable_menu_cart', array(
@@ -419,12 +427,12 @@ function pagelayer_woo_customize_register( $wp_customize ) {
419
  'type' => 'option',
420
  'capability' => 'edit_theme_options',
421
  'transport' => 'refresh',
422
- ),
423
  );
424
 
425
  $wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_enable_menu_cart]', array(
426
  'type' => 'checkbox',
427
- 'label' => __('Show Cart Icon'),
428
  'section' => 'pgl_woo_general',
429
  'priority' => 9
430
  ))
@@ -435,7 +443,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
435
  'type' => 'option',
436
  'capability' => 'edit_theme_options',
437
  'transport' => 'refresh'
438
- ),
439
  );
440
 
441
  $wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_menu_cart_color]', array(
@@ -450,7 +458,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
450
  'type' => 'option',
451
  'capability' => 'edit_theme_options',
452
  'transport' => 'refresh'
453
- ),
454
  );
455
 
456
  $wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_menu_cart_number_color]', array(
@@ -465,7 +473,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
465
  'panel' => 'pgl_woocommerce',
466
  'title' => __('Product Catalog'),
467
  'priority' => 4,
468
- ),
469
  );
470
 
471
  // Register the WooCommerce Default Padding
@@ -488,7 +496,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
488
  'panel' => 'pgl_woocommerce',
489
  'title' => __('Single Product'),
490
  'priority' => 5,
491
- ),
492
  );
493
 
494
  // Register the WooCommerce single page Padding
@@ -511,7 +519,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
511
  'type' => 'option',
512
  'capability' => 'edit_theme_options',
513
  'transport' => 'refresh',
514
- ),
515
  );
516
 
517
  $wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_disable_breadcrumb]', array(
@@ -527,7 +535,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
527
  'panel' => 'pgl_woocommerce',
528
  'title' => __('Cart'),
529
  'priority' => 7,
530
- ),
531
  );
532
 
533
  pagelayer_register_padding_customizer_control($wp_customize, array(
@@ -549,7 +557,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
549
  'type' => 'option',
550
  'capability' => 'edit_theme_options',
551
  'transport' => 'refresh',
552
- ),
553
  );
554
 
555
  $wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_disable_cross_sells]', array(
@@ -587,7 +595,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
587
  'type' => 'option',
588
  'capability' => 'edit_theme_options',
589
  'transport' => 'refresh',
590
- ),
591
  );
592
 
593
  $wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_disable_order_note]', array(
@@ -602,7 +610,7 @@ function pagelayer_woo_customize_register( $wp_customize ) {
602
  'type' => 'option',
603
  'capability' => 'edit_theme_options',
604
  'transport' => 'refresh',
605
- ),
606
  );
607
 
608
  $wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_disable_coupon_field]', array(
58
  add_filter('wp_page_menu', 'pagelayer_add_woo_cart', 10, 2);
59
  function pagelayer_add_woo_cart($items, $args) {
60
 
61
+ $menu_id = $args->menu->term_id;
62
+ $locations = get_nav_menu_locations();
63
+
64
+ //pagelayer_print($locations);
65
+ if(empty($locations) || !isset($locations['primary']) || $locations['primary'] != $menu_id) {
66
+ return $items;
67
+ }
68
+
69
  $options = pagelayer_get_customize_options();
70
 
71
+ if(!empty($options['woo_enable_menu_cart'])) {
72
  $items .= '<li class="page-item pagelayer-menu-cart cart-customlocation menu-item menu-item-type-post_type menu-item-object-page"><a href=""><span class="dashicons dashicons-cart"></span><sup></sup></a></li>';
73
  }
74
 
211
  // Apply customizer css
212
  foreach($woo_styles as $key => $rules){
213
 
214
+ $value = @$options[$key];
215
 
216
  if(empty($value) && $value != '0'){
217
  continue;
329
  'priority' => 1,
330
  'title' => __('Store Notice'),
331
  'description' => '<strong><a href="customize.php?autofocus[section]=woocommerce_store_notice">'.__('Click here') .'</a> '. __('to enable the store notice') .'</strong>',
332
+ )
333
  );
334
 
335
  // Adds Customizer settings
337
  'type' => 'option',
338
  'capability' => 'edit_theme_options',
339
  'transport' => 'refresh',
340
+ )
341
  );
342
 
343
  $wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_notice_bg_color]', array(
352
  'type' => 'option',
353
  'capability' => 'edit_theme_options',
354
  'transport' => 'refresh',
355
+ )
356
  );
357
 
358
  $wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_notice_color]', array(
367
  'type' => 'option',
368
  'capability' => 'edit_theme_options',
369
  'transport' => 'refresh',
370
+ )
371
  );
372
 
373
  $wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_notice_a_color]', array(
382
  'type' => 'option',
383
  'capability' => 'edit_theme_options',
384
  'transport' => 'refresh',
385
+ )
386
  );
387
 
388
  $wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_notice_a_hover_color]', array(
397
  'panel' => 'pgl_woocommerce',
398
  'title' => __('General'),
399
  'priority' => 2,
400
+ )
401
  );
402
 
403
  // Adds Customizer settings
405
  'type' => 'option',
406
  'capability' => 'edit_theme_options',
407
  'transport' => 'refresh',
408
+ )
409
  );
410
 
411
  $wp_customize->add_setting( 'pagelayer_lable_menu_cart', array(
427
  'type' => 'option',
428
  'capability' => 'edit_theme_options',
429
  'transport' => 'refresh',
430
+ )
431
  );
432
 
433
  $wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_enable_menu_cart]', array(
434
  'type' => 'checkbox',
435
+ 'label' => __('Show Cart Icon On Primary Menu'),
436
  'section' => 'pgl_woo_general',
437
  'priority' => 9
438
  ))
443
  'type' => 'option',
444
  'capability' => 'edit_theme_options',
445
  'transport' => 'refresh'
446
+ )
447
  );
448
 
449
  $wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_menu_cart_color]', array(
458
  'type' => 'option',
459
  'capability' => 'edit_theme_options',
460
  'transport' => 'refresh'
461
+ )
462
  );
463
 
464
  $wp_customize->add_control( new Pagelayer_Customize_Alpha_Color_Control( $wp_customize, 'pagelayer_customizer_options[woo_menu_cart_number_color]', array(
473
  'panel' => 'pgl_woocommerce',
474
  'title' => __('Product Catalog'),
475
  'priority' => 4,
476
+ )
477
  );
478
 
479
  // Register the WooCommerce Default Padding
496
  'panel' => 'pgl_woocommerce',
497
  'title' => __('Single Product'),
498
  'priority' => 5,
499
+ )
500
  );
501
 
502
  // Register the WooCommerce single page Padding
519
  'type' => 'option',
520
  'capability' => 'edit_theme_options',
521
  'transport' => 'refresh',
522
+ )
523
  );
524
 
525
  $wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_disable_breadcrumb]', array(
535
  'panel' => 'pgl_woocommerce',
536
  'title' => __('Cart'),
537
  'priority' => 7,
538
+ )
539
  );
540
 
541
  pagelayer_register_padding_customizer_control($wp_customize, array(
557
  'type' => 'option',
558
  'capability' => 'edit_theme_options',
559
  'transport' => 'refresh',
560
+ )
561
  );
562
 
563
  $wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_disable_cross_sells]', array(
595
  'type' => 'option',
596
  'capability' => 'edit_theme_options',
597
  'transport' => 'refresh',
598
+ )
599
  );
600
 
601
  $wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_disable_order_note]', array(
610
  'type' => 'option',
611
  'capability' => 'edit_theme_options',
612
  'transport' => 'refresh',
613
+ )
614
  );
615
 
616
  $wp_customize->add_control( new Pagelayer_Custom_Control( $wp_customize, 'pagelayer_customizer_options[woo_disable_coupon_field]', array(
pagelayer.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: PageLayer
4
  Plugin URI: http://wordpress.org/plugins/pagelayer/
5
  Description: PageLayer is a WordPress page builder plugin. Its very easy to use and very light on the browser.
6
- Version: 1.7.1
7
  Author: Pagelayer Team
8
  Author URI: https://pagelayer.com/
9
  License: LGPL v2.1
3
  Plugin Name: PageLayer
4
  Plugin URI: http://wordpress.org/plugins/pagelayer/
5
  Description: PageLayer is a WordPress page builder plugin. Its very easy to use and very light on the browser.
6
+ Version: 1.7.2
7
  Author: Pagelayer Team
8
  Author URI: https://pagelayer.com/
9
  License: LGPL v2.1
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: pagelayer, softaculous
3
  Tags: page builder, editor, drag and drop, form builder, landing page, responsive, woocommerce, website builder, website design, visual editor, maintenance mode, wysiwyg, page editor, front end, parallax design, widgets, block, button, category, contact, contact form, e-commerce, facebook, form, gallery, image, import, coming soon, links, menu, mega menu, multisite, site builder, fast performance, plugin, popup, post, SEO, shortcode, sidebar, slider, social, tags, themes, Twitter, video, widget, youtube, header, footer, portfolio, custom, color, full site editing, sticky post, template, under construction, grid layout, popular, page, softaculous, design
4
  Requires at least: 4.7
5
- Tested up to: 6.0
6
  Requires PHP: 5.5
7
- Stable tag: 1.7.1
8
  License: LGPL v2.1
9
  License URI: http://www.gnu.org/licenses/lgpl-2.1.html
10
 
@@ -127,14 +127,21 @@ Do you have questions related to Pagelayer? Use the following links :
127
 
128
  == Changelog ==
129
 
 
 
 
 
 
 
 
130
  = 1.7.1 (Sep 07, 2022) =
131
- * [Feature] Added Customizer settings for WooCommerce. Now you can easily customize your WooCommerce Store.
132
 
133
  = 1.7.0 (July 28, 2022) =
134
  * [Task] The typography properties has been further improved.
135
  * [Task] Added global color option for the gradient property.
136
  * [Task] Added the "HTML Tag" option in post title widget. Now you can select the tags to wrap the post title.
137
- * [Bug-Fix] In the some widgets global color were not applied properly. This is fixed.
138
  * [Bug-Fix] In some cases Ctrl+Z was not working properly. This is fixed.
139
  * [Bug-Fix] In the Social Icon widget, icons were aligning with respect to the holder. This is fixed.
140
 
2
  Contributors: pagelayer, softaculous
3
  Tags: page builder, editor, drag and drop, form builder, landing page, responsive, woocommerce, website builder, website design, visual editor, maintenance mode, wysiwyg, page editor, front end, parallax design, widgets, block, button, category, contact, contact form, e-commerce, facebook, form, gallery, image, import, coming soon, links, menu, mega menu, multisite, site builder, fast performance, plugin, popup, post, SEO, shortcode, sidebar, slider, social, tags, themes, Twitter, video, widget, youtube, header, footer, portfolio, custom, color, full site editing, sticky post, template, under construction, grid layout, popular, page, softaculous, design
4
  Requires at least: 4.7
5
+ Tested up to: 6.1
6
  Requires PHP: 5.5
7
+ Stable tag: 1.7.2
8
  License: LGPL v2.1
9
  License URI: http://www.gnu.org/licenses/lgpl-2.1.html
10
 
127
 
128
  == Changelog ==
129
 
130
+ = 1.7.2 (Nov 04, 2022) =
131
+ * [Feature] Added setting to add content when body is open on Pagelayer -> website settings page.
132
+ * [Task] Allow to add otf extension font files to Pagelayer custom font.
133
+ * [Bug-Fix] On turning on the error report in PHP, some PHP error notice was shown. This is fixed.
134
+ * [Bug Fix] The post guid was not updated properly when cloning the post. This is fixed.
135
+ * [Bug Fix] In certain cases scripts were not loaded properly in the Pagelayer editor. This is fixed.
136
+
137
  = 1.7.1 (Sep 07, 2022) =
138
+ * [Feature] Added Customizer settings for WooCommerce. Now you can easily customize your WooCommerce Store.
139
 
140
  = 1.7.0 (July 28, 2022) =
141
  * [Task] The typography properties has been further improved.
142
  * [Task] Added global color option for the gradient property.
143
  * [Task] Added the "HTML Tag" option in post title widget. Now you can select the tags to wrap the post title.
144
+ * [Bug-Fix] In the some widgets global colors were not applied properly. This is fixed.
145
  * [Bug-Fix] In some cases Ctrl+Z was not working properly. This is fixed.
146
  * [Bug-Fix] In the Social Icon widget, icons were aligning with respect to the holder. This is fixed.
147