File "tp-education.php"
Full Path: /home2/sdektunc/cepali.edu.mx/wp-content/plugins/tp-education/tp-education.php
File size: 21.13 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Plugin Name: TP Education
* Plugin URI: https://www.themepalace.com/plugins/tp_education
* Description: A plugin to add custom post type ( Events, Courses, Classes, Excursions, Team, Testimonial, Affiliation ) and it's required meta fields for educational sites. This plugin is dedicated for educational themes.
* Version: 4.3
* Author: Theme Palace
* Author URI: https://themepalace.com
* Requires at least: 4.7
* Tested up to: 5.8
* Requires PHP : 6.0
* Text Domain: tp-education
* Domain Path: /languages/
*
* @package TP Education
* @category Core
* @author Theme Palace
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
if ( ! class_exists( 'TP_Education' ) ) :
final class TP_Education {
public function __construct()
{
$this->tp_education_constant();
$this->tp_education_includes();
$this->tp_education_hooks();
$this->tp_education_install_uninstall_hook();
}
public function tp_education_constant()
{
define( 'TP_EDUCATION_BASE_PATH', dirname(__FILE__ ) );
define( 'TP_EDUCATION_URL_PATH', plugin_dir_url(__FILE__ ) );
define( 'TP_EDUCATION_PLUGIN_BASE_PATH', plugin_basename(__FILE__) );
define( 'TP_EDUCATION_PLUGIN_FILE_PATH', (__FILE__) );
}
public function tp_education_install_uninstall_rewrite()
{
/*
* flush rewrite rules
*/
register_activation_hook( TP_EDUCATION_PLUGIN_FILE_PATH, array( 'TP_Education', 'tp_education_rewrite' ) );
register_deactivation_hook( TP_EDUCATION_PLUGIN_FILE_PATH, array( 'TP_Education', 'tp_education_rewrite' ) );
}
private function tp_education_install_uninstall_hook()
{
/*
* Activation and Deactivation hook
*/
add_action( 'init', array( $this, 'tp_education_install_uninstall_rewrite' ) );
}
public function tp_education_add_action_links ( $links )
{
/*
* Add Support link to plugin action
*/
$mylinks = array(
'<a href="' . admin_url( 'options-general.php?page=tp-education-admin' ) . '">' . __( 'Settings', 'tp-education' ) . '</a>',
);
return array_merge( $links, $mylinks );
}
static function tp_education_rewrite()
{
flush_rewrite_rules( $hard = false );
}
public function tp_education_includes()
{
$options = get_option( 'tp_education_setting_option' );
/*
* Setting Page
*/
include_once TP_EDUCATION_BASE_PATH . '/includes/tp-education-setting-page.php';
/*
* CUSTOM POST TYPE
*/
// Courses Post Type
if ( isset( $options['enable_course_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-post-type/class-tp-courses.php';
endif;
// Classes Post Type
if ( isset( $options['enable_class_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-post-type/class-tp-classes.php';
endif;
// Events Post Type
if ( isset( $options['enable_event_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-post-type/class-tp-events.php';
endif;
// Excursions Post Type
if ( isset( $options['enable_excursion_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-post-type/class-tp-excursions.php';
endif;
// Team Post Type
if ( isset( $options['enable_team_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-post-type/class-tp-team.php';
endif;
// Testimonial Post Type
if ( isset( $options['enable_testimonial_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-post-type/class-tp-testimonial.php';
endif;
// Affiliation Post Type
if ( isset( $options['enable_affiliation_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-post-type/class-tp-affiliation.php';
endif;
/*
* META BOX
*/
// Classes Meta Box
if ( isset( $options['enable_class_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-metabox/class-tp-classes-metabox.php';
endif;
// Testimonial Meta Box
if ( isset( $options['enable_testimonial_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-metabox/class-tp-testimonial-metabox.php';
include_once TP_EDUCATION_BASE_PATH . '/tp-metabox/class-tp-testimonial-social-metabox.php';
endif;
// Team Meta Box
if ( isset( $options['enable_team_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-metabox/class-tp-team-metabox.php';
include_once TP_EDUCATION_BASE_PATH . '/tp-metabox/class-tp-team-social-metabox.php';
include_once TP_EDUCATION_BASE_PATH . '/tp-widget/class-tp-team-widget.php';
endif;
// Events Meta Box
if ( isset( $options['enable_event_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-metabox/class-tp-events-metabox.php';
endif;
// Excursion Meta Box
if ( isset( $options['enable_excursion_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-metabox/class-tp-excursion-metabox.php';
endif;
// Course Meta Box
if ( isset( $options['enable_course_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-metabox/class-tp-course-metabox.php';
include_once TP_EDUCATION_BASE_PATH . '/tp-widget/class-tp-featured-course-widget.php';
endif;
// Affiliation Meta Box
if ( isset( $options['enable_affiliation_post_type'] ) ) :
include_once TP_EDUCATION_BASE_PATH . '/tp-metabox/class-tp-affiliation-metabox.php';
include_once TP_EDUCATION_BASE_PATH . '/tp-widget/class-tp-top-affiliation-widget.php';
endif;
// Like Meta Box
include_once TP_EDUCATION_BASE_PATH . '/tp-metabox/class-tp-like-metabox.php';
/*
* TEMPLATE PARTS
*/
if ( isset( $options['enable_event_post_type'] ) ) :
// Event Search form tab
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-search-tab-event-form.php';
// Content Event
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-content-event.php';
endif;
if ( isset( $options['enable_excursion_post_type'] ) ) :
// Excursion Search form tab
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-search-tab-excursion-form.php';
// Content Excursion
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-content-excursion.php';
endif;
if ( isset( $options['enable_course_post_type'] ) ) :
// Course Search form tab
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-search-tab-course-form.php';
// Content Course
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-content-course.php';
endif;
if ( isset( $options['enable_team_post_type'] ) ) :
// Team Search form tab
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-search-tab-team-form.php';
// Content Team
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-content-team.php';
endif;
if ( isset( $options['enable_class_post_type'] ) ) :
// Class Search form tab
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-search-tab-class-form.php';
// Content Class
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-content-class.php';
endif;
if ( isset( $options['enable_affiliation_post_type'] ) ) :
// Affiliation Search form tab
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-search-tab-affiliation-form.php';
// Content Affiliation
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-content-affiliation.php';
endif;
if ( isset( $options['enable_testimonial_post_type'] ) ) :
// Content Testimonial
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-content-testimonial.php';
endif;
// Content Single
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-content-single.php';
// Related Posts
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-related-posts.php';
// Content Search
include_once TP_EDUCATION_BASE_PATH . '/template-parts/tp-content-search.php';
/*
* FUNCTIONS
*/
// Custom Post Type Date Archive Rewrite Rules
include_once TP_EDUCATION_BASE_PATH . '/includes/tp-education-rewrite.php';
// Core functions
include_once TP_EDUCATION_BASE_PATH . '/includes/tp-education-functions.php';
// Core functions
include_once TP_EDUCATION_BASE_PATH . '/includes/tp-education-return-functions.php';
// Hooks
include_once TP_EDUCATION_BASE_PATH . '/includes/tp-education-hooks.php';
// Shortcode
include_once TP_EDUCATION_BASE_PATH . '/includes/tp-education-shortcode.php';
}
public function tp_education_hooks()
{
/*
* HOOKS
*/
// add setting action in plugin page
add_filter( 'plugin_action_links_' . TP_EDUCATION_PLUGIN_BASE_PATH, array( $this, 'tp_education_add_action_links' ) );
// register widget
add_action( 'widgets_init', array( $this, 'tp_education_register_widgets' ) );
// enqueue admin scripts
add_action( 'wp_enqueue_scripts', array( $this, 'tp_education_enqueue' ) );
// enqueue admin scripts
add_action( 'admin_enqueue_scripts', array( $this, 'tp_education_admin_enqueue' ) );
// custom template
add_filter( 'template_include', array( $this,'tp_education_set_template' ) );
// custom post type search template
add_filter( 'template_include', array( $this, 'tp_education_set_search_template' ) );
// add search filter
add_filter( 'pre_get_posts', array( $this, 'tp_education_filter_search_query' ) );
}
public function tp_education_register_widgets() {
$options = get_option( 'tp_education_setting_option' );
// Team Widget
if ( isset( $options['enable_team_post_type'] ) ) :
register_widget( 'Tp_Education_Team_Widget' );
endif;
// Affiliation Widget
if ( isset( $options['enable_affiliation_post_type'] ) ) :
register_widget( 'Tp_Education_Top_Affiliation_Widget' );
endif;
// Course Widget
if ( isset( $options['enable_course_post_type'] ) ) :
register_widget( 'Tp_Education_Featured_Course_Widget' );
endif;
}
public function tp_education_enqueue()
{
/*
* Enqueue scripts
*/
// Load font awesome
wp_enqueue_style( 'font-awesome', TP_EDUCATION_URL_PATH . 'assets/css/font-awesome.min.css' );
// Load simple date picker css
wp_enqueue_style( 'jquery-ui', TP_EDUCATION_URL_PATH . 'assets/css/jquery-ui.min.css' );
// Load tp education style
wp_enqueue_style( 'tp-education-style', TP_EDUCATION_URL_PATH . 'assets/css/tp-education-style.min.css' );
// Load jquery-ui js
wp_enqueue_script( 'jquery-ui-datepicker' );
// Load tp education custom js
wp_enqueue_script( 'tp-education-custom', TP_EDUCATION_URL_PATH . 'assets/js/tp-education-custom.min.js', array( 'jquery', 'jquery-ui-datepicker' ), '', true );
}
public function tp_education_admin_enqueue( $hook )
{
/*
* Enqueue admin scripts
*/
// Load tp education style
wp_enqueue_style( 'tp-education-style', TP_EDUCATION_URL_PATH . 'assets/css/tp-education-admin-style.min.css' );
if ( 'post.php' == $hook || 'post-new.php' == $hook ) :
// Load simple date picker css
wp_enqueue_style( 'jquery-ui', TP_EDUCATION_URL_PATH . 'assets/css/jquery-ui.min.css' );
// Load time picker css
wp_enqueue_style( 'jquery-timepicker-css', TP_EDUCATION_URL_PATH . 'assets/css/jquery-timepicker.min.css' );
// Load time picker js
wp_enqueue_script( 'jquery-timepicker', TP_EDUCATION_URL_PATH . 'assets/js/jquery-timepicker.min.js', array( 'jquery' ), '', true );
// Load admin custom js
wp_enqueue_script( 'tp-education-admin-custom', TP_EDUCATION_URL_PATH . 'assets/js/admin-custom.min.js', array( 'jquery', 'jquery-ui-datepicker' ), '', true );
endif;
}
public function tp_education_set_template( $template )
{
if ( is_post_type_archive( 'tp-event' ) || is_tax('tp-event-category') ) :
if ( locate_template( 'tp-education/tp-archive-event.php' ) != '' )
$template = locate_template( 'tp-education/tp-archive-event.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-archive-event.php';
endif;
if ( is_post_type_archive( 'tp-class' ) || is_tax('tp-class-category') ) :
if ( locate_template( 'tp-education/tp-archive-class.php' ) != '' )
$template = locate_template( 'tp-education/tp-archive-class.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-archive-class.php';
endif;
if ( is_post_type_archive( 'tp-excursion' ) || is_tax('tp-excursion-category') ) :
if ( locate_template( 'tp-education/tp-archive-excursion.php' ) != '' )
$template = locate_template( 'tp-education/tp-archive-excursion.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-archive-excursion.php';
endif;
if ( is_post_type_archive( 'tp-team' ) || is_tax('tp-team-category') ) :
if ( locate_template( 'tp-education/tp-archive-team.php' ) != '' )
$template = locate_template( 'tp-education/tp-archive-team.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-archive-team.php';
endif;
if ( is_post_type_archive( 'tp-course' ) || is_tax('tp-course-category') ) :
if ( locate_template( 'tp-education/tp-archive-course.php' ) != '' )
$template = locate_template( 'tp-education/tp-archive-course.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-archive-course.php';
endif;
if ( is_post_type_archive( 'tp-testimonial' ) ) :
if ( locate_template( 'tp-education/tp-archive-testimonial.php' ) != '' )
$template = locate_template( 'tp-education/tp-archive-testimonial.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-archive-testimonial.php';
endif;
if ( is_post_type_archive( 'tp-affiliation' ) || is_tax('tp-affiliation-category') ) :
if ( locate_template( 'tp-education/tp-archive-affiliation.php' ) != '' )
$template = locate_template( 'tp-education/tp-archive-affiliation.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-archive-affiliation.php';
endif;
if( is_singular( 'tp-testimonial' ) ) :
if ( locate_template( 'tp-education/tp-single-testimonial.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-testimonial.php' );
elseif ( locate_template( 'tp-education/tp-single-post.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-post.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-single-post.php';
endif;
if( is_singular( 'tp-team' ) ) :
if ( locate_template( 'tp-education/tp-single-team.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-team.php' );
elseif ( locate_template( 'tp-education/tp-single-post.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-post.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-single-post.php';
endif;
if( is_singular( 'tp-class' ) ) :
if ( locate_template( 'tp-education/tp-single-class.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-class.php' );
elseif ( locate_template( 'tp-education/tp-single-post.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-post.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-single-post.php';
endif;
if( is_singular( 'tp-event' ) ) :
if ( locate_template( 'tp-education/tp-single-event.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-event.php' );
elseif ( locate_template( 'tp-education/tp-single-post.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-post.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-single-post.php';
endif;
if( is_singular( 'tp-excursion' ) ) :
if ( locate_template( 'tp-education/tp-single-excursion.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-excursion.php' );
elseif ( locate_template( 'tp-education/tp-single-post.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-post.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-single-post.php';
endif;
if( is_singular( 'tp-course' ) ) :
if ( locate_template( 'tp-education/tp-single-course.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-course.php' );
elseif ( locate_template( 'tp-education/tp-single-post.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-post.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-single-post.php';
endif;
if( is_singular( 'tp-affiliation' ) ) :
if ( locate_template( 'tp-education/tp-single-affiliation.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-affiliation.php' );
elseif ( locate_template( 'tp-education/tp-single-post.php' ) != '' )
$template = locate_template( 'tp-education/tp-single-post.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-single-post.php';
endif;
return $template;
}
public function tp_education_set_search_template( $template )
{
global $wp_query;
$tp_education_post_type = array( 'tp-event', 'tp-course', 'tp-excursion', 'tp-team', 'tp-class', 'tp-affiliation' );
$post_type = get_query_var( 'post_type' );
if ( $wp_query->is_search && in_array( $post_type, $tp_education_post_type ) )
{
if ( locate_template( 'tp-education/tp-archive-search.php' ) != '' )
$template = locate_template( 'tp-education/tp-archive-search.php' );
else
$template = TP_EDUCATION_BASE_PATH . '/templates/tp-archive-search.php';
}
return $template;
}
public function tp_education_filter_search_query( $query )
{
global $wp_query;
$post_type = ! empty( $_GET['post_type'] ) ? $_GET['post_type'] : get_query_var( 'post_type' );
$term = ! empty( $_GET['tp_term'] ) ? $_GET['tp_term'] : get_query_var( 'term' );
if ( $wp_query->is_search && !is_admin() && $query->is_main_query() ) {
switch ( $post_type ) {
case 'tp-event':
$date = $_GET['date'];
if ( ! empty( $term ) ) {
$taxquery = array(
array(
'taxonomy' => 'tp-event-category',
'field' => 'slug',
'terms' => $term
)
);
$query->set( 'tax_query', $taxquery );
}
if ( ! empty( $date ) ) {
$metaquery = array(
array(
'key' => 'tp_event_date_value',
'value' => $date,
'type' => time(),
'compare' => '=',
)
);
$query->set( 'meta_query', $metaquery );
}
break;
case 'tp-course':
if ( ! empty( $term ) ) {
$taxquery = array(
array(
'taxonomy' => 'tp-course-category',
'field' => 'slug',
'terms' => $term
)
);
$query->set( 'tax_query', $taxquery );
}
break;
case 'tp-excursion':
$date = $_GET['date'];
if ( ! empty( $term ) ) {
$taxquery = array(
array(
'taxonomy' => 'tp-excursion-category',
'field' => 'slug',
'terms' => $term
)
);
$query->set( 'tax_query', $taxquery );
}
if ( ! empty( $date ) ) {
$metaquery = array(
array(
'key' => 'tp_excursion_start_date_value',
'value' => $date,
'type' => time(),
'compare' => '=',
)
);
$query->set( 'meta_query', $metaquery );
}
break;
case 'tp-team':
if ( ! empty( $term ) ) {
$taxquery = array(
array(
'taxonomy' => 'tp-team-category',
'field' => 'slug',
'terms' => $term
)
);
$query->set( 'tax_query', $taxquery );
}
break;
case 'tp-class':
if ( ! empty( $term ) ) {
$taxquery = array(
array(
'taxonomy' => 'tp-class-category',
'field' => 'slug',
'terms' => $term
)
);
$query->set( 'tax_query', $taxquery );
}
break;
case 'tp-affiliation':
if ( ! empty( $term ) ) {
$taxquery = array(
array(
'taxonomy' => 'tp-affiliation-category',
'field' => 'slug',
'terms' => $term
)
);
$query->set( 'tax_query', $taxquery );
}
break;
default:
break;
}
}
return $query;
}
}
new TP_Education();
endif;