This commit is contained in:
2026-04-26 23:47:49 +02:00
parent 1b95f03d1e
commit b073e009d8
5288 changed files with 1112699 additions and 55536 deletions

View File

@@ -35,7 +35,7 @@ class HeadFooter extends Settings {
/** @var PYS $core */
$core->registerPlugin( $this );
} );
if ( $this->getOption( 'enabled' ) ) {
add_action( 'add_meta_boxes', array( $this, 'register_meta_box' ) );
add_action( 'save_post', array( $this, 'save_meta_box' ) );
@@ -52,7 +52,7 @@ class HeadFooter extends Settings {
*/
public function register_meta_box() {
if ( current_user_can( 'manage_pys' ) ) {
if ( current_user_can( 'manage_pys' ) && current_user_can('unfiltered_html') ) {
$screens = get_post_types( array( 'public' => true ) );
@@ -76,7 +76,7 @@ class HeadFooter extends Settings {
return;
}
if ( ! current_user_can( 'manage_pys' ) ) {
if ( ! current_user_can( 'manage_pys' ) && ! current_user_can('unfiltered_html')) {
return;
}
@@ -86,16 +86,31 @@ class HeadFooter extends Settings {
}
$data = $_POST['pys_head_footer'];
$meta = array(
'disable_global' => isset( $data['disable_global'] ) ? true : false,
'head_any' => isset( $data['head_any'] ) ? trim( $data['head_any'] ) : '',
'head_desktop' => isset( $data['head_desktop'] ) ? trim( $data['head_desktop'] ) : '',
'head_mobile' => isset( $data['head_mobile'] ) ? trim( $data['head_mobile'] ) : '',
'footer_any' => isset( $data['footer_any'] ) ? trim( $data['footer_any'] ) : '',
'footer_desktop' => isset( $data['footer_desktop'] ) ? trim( $data['footer_desktop'] ) : '',
'footer_mobile' => isset( $data['footer_mobile'] ) ? trim( $data['footer_mobile'] ) : '',
);
$meta = array(
'disable_global' => isset( $data['disable_global'] ) ? true : false,
);
foreach ( $data as $key => $val ) {
switch ($key) {
case "head_any":
$meta['head_any'] = isset($val) ? trim($val) : '';
break;
case "head_desktop":
$meta['head_desktop'] = isset($val) ? trim($val) : '';
break;
case "head_mobile":
$meta['head_mobile'] = isset($val) ? trim($val) : '';
break;
case "footer_any":
$meta['footer_any'] = isset($val) ? trim($val) : '';
break;
case "footer_desktop":
$meta['footer_desktop'] = isset($val) ? trim($val) : '';
break;
case "footer_mobile":
$meta['footer_mobile'] = isset($val) ? trim($val) : '';
break;
}
}
update_post_meta( $post_id, '_pys_head_footer', $meta );
@@ -156,7 +171,7 @@ class HeadFooter extends Settings {
public function output_head_woo_order_received() {
$scripts_any = $this->getOption( 'woo_order_received_head_any' );
$scripts_any = esc_js($this->getOption( 'woo_order_received_head_any' ));
if ( $scripts_any ) {
echo "\r\n{$scripts_any}\r\n";

View File

@@ -0,0 +1,180 @@
<?php
namespace PixelYourSite;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
?>
<h2 class="section-title">Head and Footer Settings</h2>
<!-- General -->
<div class="card card-static">
<div class="card-header">
General
</div>
<div class="card-body">
<div class="row">
<div class="col">
<p>
Your user role doesn't have permission to add this type of code. You need unfiltered_html capabilities. Ask your admin to upgrade your account. For Multisite, ask your super admin to upgrade your account.
</p>
</div>
</div>
</div>
<div class="card-body">
<div class="row">
<div class="col">
<?php renderDummySwitcher( 'false' ); ?>
<h4 class="switcher-label">Enable Head and Footer</h4>
</div>
</div>
</div>
</div>
<!-- Header Scripts -->
<div class="card card-static">
<div class="card-header">
Head Scripts
</div>
<div class="card-body">
<div class="row form-group">
<div class="col">
<h4 class="label">Any device type:</h4>
<?php renderDummyTextAreaInput( 'head_any' ); ?>
</div>
</div>
<div class="row form-group">
<div class="col">
<h4 class="label">Desktop Only:</h4>
<?php renderDummyTextAreaInput( 'head_desktop' ); ?>
</div>
</div>
<div class="row">
<div class="col">
<h4 class="label">Mobile Only:</h4>
<?php renderDummyTextAreaInput( 'head_mobile' ); ?>
</div>
</div>
</div>
</div>
<!-- Footer Scripts -->
<div class="card card-static">
<div class="card-header">
Footer Scripts
</div>
<div class="card-body">
<div class="row form-group">
<div class="col">
<h4 class="label">Any device type:</h4>
<?php renderDummyTextAreaInput( 'footer_any' ); ?>
</div>
</div>
<div class="row form-group">
<div class="col">
<h4 class="label">Desktop Only:</h4>
<?php renderDummyTextAreaInput( 'footer_desktop' ); ?>
</div>
</div>
<div class="row">
<div class="col">
<h4 class="label">Mobile Only:</h4>
<?php renderDummyTextAreaInput( 'footer_mobile' ); ?>
</div>
</div>
</div>
</div>
<?php if( isWooCommerceActive() ) : ?>
<h2 class="section-title">WooCommerce Order Received Page Scripts</h2>
<!-- <p>Insert any script on the WooCommerce Thank You Page (order-received).</p>-->
<div class="card card-static">
<div class="card-header">
General
</div>
<div class="card-body">
<div class="row">
<div class="col">
<?php renderDummySwitcher( false ); ?>
<h4 class="switcher-label">Disable global head and footer scripts on Order Received page</h4>
</div>
</div>
</div>
</div>
<div class="card card-static">
<div class="card-header">
Head Scripts
</div>
<div class="card-body">
<div class="row form-group">
<div class="col">
<h4 class="label">Any device type:</h4>
<?php renderDummyTextAreaInput( 'woo_order_received_head_any' ); ?>
</div>
</div>
<div class="row form-group">
<div class="col">
<h4 class="label">Desktop Only:</h4>
<?php renderDummyTextAreaInput( 'woo_order_received_head_desktop' ); ?>
</div>
</div>
<div class="row">
<div class="col">
<h4 class="label">Mobile Only:</h4>
<?php renderDummyTextAreaInput( 'woo_order_received_head_mobile' ); ?>
</div>
</div>
</div>
</div>
<div class="card card-static">
<div class="card-header">
Footer Scripts
</div>
<div class="card-body">
<div class="row form-group">
<div class="col">
<h4 class="label">Any device type:</h4>
<?php renderDummyTextAreaInput( 'woo_order_received_footer_any' ); ?>
</div>
</div>
<div class="row form-group">
<div class="col">
<h4 class="label">Desktop Only:</h4>
<?php renderDummyTextAreaInput( 'woo_order_received_footer_desktop' ); ?>
</div>
</div>
<div class="row">
<div class="col">
<h4 class="label">Mobile Only:</h4>
<?php renderDummyTextAreaInput( 'woo_order_received_footer_mobile' ); ?>
</div>
</div>
</div>
</div>
<?php endif; ?>
<h2 class="section-title">Replacements <?php renderHfBadge(); ?></h2>
<div class="panel">
<div class="row">
<div class="col text-secondary">
<?php include 'html-variables-help.php'; ?>
</div>
</div>
</div>
<hr>
<div class="row justify-content-center">
<div class="col-4">
<button class="btn btn-block btn-save">Save Settings</button>
</div>
</div>