Your IP : 216.73.216.196
<?php
namespace Aepro\Admin;
use Aepro\Aepro;
use Aepro\Admin\Ui;
class Admin {
public function __construct() {
add_action( 'admin_enqueue_scripts', [ $this, 'load_admin_style' ] );
add_action( 'admin_init', [ $this, 'admin_init' ] );
add_action( 'save_post', [ $this, 'save_ae_post_template' ] );
add_action( 'wp_loaded', [ $this, 'term_meta_boxes' ] );
add_action( 'wp_ajax_aep_save_modules', [ $this, 'aep_save_modules' ] );
Ui::instance();
}
public function admin_init() {
$post_types = Aepro::$_helper->get_rule_post_types( 'names' );
$post_types = apply_filters( 'aepro/admin/post_templates', $post_types );
add_meta_box(
'ae_post_template_meta_box',
__( 'AE Post Template', 'ae-pro' ),
[ $this, 'post_template_list' ],
$post_types,
'side',
'high'
);
add_meta_box(
'ae-shortcode-box',
__( 'Anywhere Elementor Usage', 'ae-pro' ),
[ $this, 'ae_pro_shortcode_box' ],
'ae_global_templates',
'side',
'high'
);
}
public function term_meta_boxes() {
if ( ! is_admin() ) {
return;
}
// Add Term Meta
$args = [
'public' => true,
];
$taxonomies = get_taxonomies( $args, 'objects' );
$helper = Aepro::$_helper;
$taxonomies = apply_filters( 'aepro/admin/term_templates', $taxonomies );
foreach ( $taxonomies as $taxonomy ) {
// Add Form Field
add_action( $taxonomy->name . '_add_form_fields', [ $this, 'taxonomy_add_form_fields' ], 10, 2 );
// Edit Form Field
add_action( $taxonomy->name . '_edit_form_fields', [ $this, 'taxonomy_edit_form_fields' ], 10, 2 );
// phpcs:disable WordPress.Security.NonceVerification.Missing
add_action(
'created_' . $taxonomy->name,
function ( $term_id, $tt_id ) {
if ( isset( $_POST['ae_term_template'] ) && '' !== $_POST['ae_term_template'] ) {
$template = sanitize_title( $_POST['ae_term_template'] );
add_term_meta( $term_id, 'ae_term_template', $template, true );
}
if ( isset( $_POST['ae_term_post_template'] ) && '' !== $_POST['ae_term_post_template'] ) {
$termposttemplate = sanitize_title( $_POST['ae_term_post_template'] );
add_term_meta( $term_id, 'ae_term_post_template', $termposttemplate, true );
}
},
10,
2
);
add_action(
'edited_' . $taxonomy->name,
function ( $term_id, $tt_id ) {
if ( isset( $_POST['ae_term_template'] ) && '' !== $_POST['ae_term_template'] ) {
$template = sanitize_title( $_POST['ae_term_template'] );
update_term_meta( $term_id, 'ae_term_template', $template );
}
if ( isset( $_POST['ae_term_post_template'] ) && '' !== $_POST['ae_term_post_template'] ) {
$termposttemplate = sanitize_title( $_POST['ae_term_post_template'] );
update_term_meta( $term_id, 'ae_term_post_template', $termposttemplate );
}
},
10,
2
);
// phpcs:enable
}
}
public function taxonomy_add_form_fields( $taxonomy ) {
$ae_term_templates = Aepro::$_helper->get_taxonomy_templates();
$ae_post_templates = Aepro::$_helper->get_ae_post_templates();
?>
<div class="form-field term-group">
<label for="ae_term_template"><?php esc_html_e( 'AE Pro Term Template', 'ae-pro' ); ?></label>
<select class="postform" id="equipment-group" name="ae_term_template">
<option value="global"><?php esc_html_e( 'Global', 'ae-pro' ); ?></option>
<option value="none"><?php esc_html_e( 'None', 'ae-pro' ); ?></option>
<?php
if ( count( $ae_term_templates ) ) {
foreach ( $ae_term_templates[ $taxonomy ] as $template_id => $title ) :
?>
<option value="<?php echo esc_html( $template_id ); ?>" class=""><?php echo esc_html( $title ); ?></option>
<?php
endforeach;
}
?>
</select>
</div>
<div class="form-field term-group">
<label for="ae_term_post_template"><?php esc_html_e( 'AE Pro Singular Template', 'ae-pro' ); ?></label>
<select class="postform" id="equipment-group" name="ae_term_post_template">
<?php
if ( count( $ae_post_templates ) ) {
foreach ( $ae_post_templates as $key => $value ) :
?>
<option value="<?php echo esc_html( $key ); ?>" class=""><?php echo esc_html( $value ); ?></option>
<?php
endforeach;
}
?>
</select>
<br />
<p><em><?php echo esc_html__( 'It will be applied on singular layout of all posts/cpt\'s of this term', 'ae-pro' ); ?></em></p>
</div>
<?php
}
public function taxonomy_edit_form_fields( $term, $taxonomy ) {
$ae_term_templates = Aepro::$_helper->get_taxonomy_templates();
$ae_post_templates = Aepro::$_helper->get_ae_post_templates();
$ae_term_templates_list['global'] = __( 'Global', 'ae-pro' );
$ae_term_templates_list['none'] = __( 'None', 'ae-pro' );
if ( isset( $ae_term_templates[ $taxonomy ] ) && is_array( $ae_term_templates[ $taxonomy ] ) && count( $ae_term_templates[ $taxonomy ] ) ) {
$ae_term_templates_list = array_replace( $ae_term_templates_list, $ae_term_templates[ $taxonomy ] );
}
// get current template
$ae_term_template = get_term_meta( $term->term_id, 'ae_term_template', true );
?>
<tr class="form-field term-group-wrap">
<th scope="row"><label for="ae_term_template"><?php esc_html_e( 'AE Pro Term Template', 'ae-pro' ); ?></label></th>
<td><select class="postform" id="feature-group" name="ae_term_template">
<?php
if ( count( $ae_term_templates_list ) ) {
foreach ( $ae_term_templates_list as $template_id => $title ) :
?>
<option value="<?php echo esc_html( $template_id ); ?>" <?php selected( $ae_term_template, $template_id ); ?>><?php echo esc_html( $title ); ?></option>
<?php
endforeach;
}
?>
</select></td>
</tr>
<?php $ae_current_post_template = get_term_meta( $term->term_id, 'ae_term_post_template', true ); ?>
<tr class="form-field term-group-wrap">
<th scope="row"><label for="ae_term_post_template"><?php esc_html_e( 'AE Pro Singular Template', 'ae-pro' ); ?></label></th>
<td><select class="postform" id="feature-group1" name="ae_term_post_template">
<?php
if ( count( $ae_post_templates ) ) {
foreach ( $ae_post_templates as $key => $value ) :
?>
<option value="<?php echo esc_html( $key ); ?>" <?php selected( $ae_current_post_template, $key ); ?>><?php echo esc_html( $value ); ?></option>
<?php
endforeach;
}
?>
</select>
<br />
<p><em><?php echo esc_html__( 'It will be applied on singular layout of all posts/cpt\'s of this term', 'ae-pro' ); ?></em></p>
</td>
</tr>
<?php
}
public function ae_pro_shortcode_box( $post ) {
?>
<h4 style="margin-bottom:5px;">Shortcode</h4>
<input type='text' class='widefat' value='[INSERT_ELEMENTOR id="<?php echo esc_html( $post->ID ); ?>"]' readonly="">
<h4 style="margin-bottom:5px;">Php Code</h4>
<input type='text' class='widefat' value="<?php echo do_shortcode('[INSERT_ELEMENTOR id="<?php echo esc_html( $post->ID ); ?>"]'); ?>" readonly="">
<?php
}
public function post_template_list( $post ) {
$ae_post_template = get_post_meta( $post->ID, 'ae_post_template', true );
$post_templates = Aepro::$_helper->get_ae_post_templates();
?>
<h4><?php echo esc_html__( 'Select Layout', 'ae-pro' ); ?></h4>
<select name="ae_post_template">
<?php
foreach ( $post_templates as $key => $post_template ) {
?>
<?php //phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison ?>
<option <?php echo ( $key == $ae_post_template ) ? 'selected' : ''; ?> value="<?php echo esc_html( $key ); ?>"><?php echo esc_html( $post_template ); ?></option>
<?php
}
?>
</select>
<?php
wp_nonce_field( 'ae_post_template_metabox_nonce', 'ae_post_template_nonce' );
}
public function save_ae_post_template( $post_id ) {
if ( ! isset( $_POST['ae_post_template_nonce'] ) || ! wp_verify_nonce( $_POST['ae_post_template_nonce'], 'ae_post_template_metabox_nonce' ) ) {
return;
}
if ( isset( $_POST['ae_post_template'] ) ) {
update_post_meta( $post_id, 'ae_post_template', sanitize_text_field( $_POST['ae_post_template'] ) );
}
}
public function load_admin_style( $hook ) {
wp_enqueue_style( 'aep-admin', AE_PRO_URL . 'includes/admin/admin.css', [], AE_PRO_VERSION );
}
public function aep_save_modules() { }
}
new Admin();