mirror of
				https://github.com/lubuntu-team/lubuntu.me.git
				synced 2025-10-31 16:44:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			313 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			313 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
|  * Get Post Data
 | |
|  * @param  array $args
 | |
|  * @return array
 | |
|  */
 | |
| function eael_get_post_data( $args ) {
 | |
|     $defaults = array(
 | |
|         'posts_per_page'   => 5,
 | |
|         'offset'           => 0,
 | |
|         'category'         => '',
 | |
|         'category_name'    => '',
 | |
|         'orderby'          => 'date',
 | |
|         'order'            => 'DESC',
 | |
|         'include'          => '',
 | |
|         'exclude'          => '',
 | |
|         'meta_key'         => '',
 | |
|         'meta_value'       => '',
 | |
|         'post_type'        => 'post',
 | |
|         'post_mime_type'   => '',
 | |
|         'post_parent'      => '',
 | |
|         'author'       => '',
 | |
|         'author_name'      => '',
 | |
|         'post_status'      => 'publish',
 | |
|         'suppress_filters' => true
 | |
|     );
 | |
| 
 | |
|     $atts = wp_parse_args( $args, $defaults );
 | |
| 
 | |
|     $posts = get_posts( $atts );
 | |
| 
 | |
|     return $posts;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get All POst Types
 | |
|  * @return array
 | |
|  */
 | |
| function eael_get_post_types(){
 | |
| 
 | |
|     $eael_cpts = get_post_types( array( 'public'   => true, 'show_in_nav_menus' => true ) );
 | |
|     $eael_exclude_cpts = array( 'elementor_library', 'attachment', 'product' );
 | |
| 
 | |
|     foreach ( $eael_exclude_cpts as $exclude_cpt ) {
 | |
|         unset($eael_cpts[$exclude_cpt]);
 | |
|     }
 | |
| 
 | |
|     $post_types = array_merge($eael_cpts);
 | |
|     return $post_types;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Add REST API support to an already registered post type.
 | |
|  */
 | |
| add_action( 'init', 'eael_custom_post_type_rest_support', 25 );
 | |
| function eael_custom_post_type_rest_support() {
 | |
|     global $wp_post_types;
 | |
| 
 | |
|     $post_types = eael_get_post_types();
 | |
|     foreach( $post_types as $post_type ) {
 | |
|         $post_type_name = $post_type;
 | |
|         if( isset( $wp_post_types[ $post_type_name ] ) ) {
 | |
|             $wp_post_types[$post_type_name]->show_in_rest = true;
 | |
|             $wp_post_types[$post_type_name]->rest_base = $post_type_name;
 | |
|             $wp_post_types[$post_type_name]->rest_controller_class = 'WP_REST_Posts_Controller';
 | |
|         }
 | |
|     }
 | |
| 
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Post Settings Parameter
 | |
|  * @param  array $settings
 | |
|  * @return array
 | |
|  */
 | |
| function eael_get_post_settings($settings){
 | |
|     $post_args['post_type'] = $settings['eael_post_type'];
 | |
| 
 | |
|     if($settings['eael_post_type'] == 'post'){
 | |
|         $post_args['category'] = $settings['category'];
 | |
|     }
 | |
| 
 | |
|     $post_args['posts_per_page'] = $settings['eael_posts_count'];
 | |
|     $post_args['offset'] = $settings['eael_post_offset'];
 | |
|     $post_args['orderby'] = $settings['eael_post_orderby'];
 | |
|     $post_args['order'] = $settings['eael_post_order'];
 | |
| 
 | |
|     return $post_args;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Getting Excerpts By Post Id
 | |
|  * @param  int $post_id
 | |
|  * @param  int $excerpt_length
 | |
|  * @return string
 | |
|  */
 | |
| function eael_get_excerpt_by_id($post_id,$excerpt_length){
 | |
|     $the_post = get_post($post_id); //Gets post ID
 | |
| 
 | |
|     $the_excerpt = null;
 | |
|     if ($the_post)
 | |
|     {
 | |
|         $the_excerpt = $the_post->post_excerpt ? $the_post->post_excerpt : $the_post->post_content;
 | |
|     }
 | |
| 
 | |
|     $the_excerpt = strip_tags(strip_shortcodes($the_excerpt)); //Strips tags and images
 | |
|     $words = explode(' ', $the_excerpt, $excerpt_length + 1);
 | |
| 
 | |
|      if(count($words) > $excerpt_length) :
 | |
|          array_pop($words);
 | |
|          array_push($words, '…');
 | |
|          $the_excerpt = implode(' ', $words);
 | |
|      endif;
 | |
| 
 | |
|      return $the_excerpt;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Post Thumbnail Size
 | |
|  * @return array
 | |
|  */
 | |
| function eael_get_thumbnail_sizes(){
 | |
|     $sizes = get_intermediate_image_sizes();
 | |
|     foreach($sizes as $s){
 | |
|         $ret[$s] = $s;
 | |
|     }
 | |
| 
 | |
|     return $ret;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * POst Orderby Options
 | |
|  * @return array
 | |
|  */
 | |
| function eael_get_post_orderby_options(){
 | |
|     $orderby = array(
 | |
|         'ID' => 'Post ID',
 | |
|         'author' => 'Post Author',
 | |
|         'title' => 'Title',
 | |
|         'date' => 'Date',
 | |
|         'modified' => 'Last Modified Date',
 | |
|         'parent' => 'Parent Id',
 | |
|         'rand' => 'Random',
 | |
|         'comment_count' => 'Comment Count',
 | |
|         'menu_order' => 'Menu Order',
 | |
|     );
 | |
| 
 | |
|     return $orderby;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Post Categories
 | |
|  * @return array
 | |
|  */
 | |
| function eael_post_type_categories(){
 | |
|     $terms = get_terms( array(
 | |
|         'taxonomy' => 'category',
 | |
|         'hide_empty' => true,
 | |
|     ));
 | |
| 
 | |
|     if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
 | |
|     foreach ( $terms as $term ) {
 | |
|         $options[ $term->term_id ] = $term->name;
 | |
|     }
 | |
|     }
 | |
| 
 | |
|     return $options;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * WooCommerce Product Query
 | |
|  * @return array
 | |
|  */
 | |
| function eael_woocommerce_product_categories(){
 | |
|     $terms = get_terms( array(
 | |
|         'taxonomy' => 'product_cat',
 | |
|         'hide_empty' => true,
 | |
|     ));
 | |
| 
 | |
|     if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
 | |
|     foreach ( $terms as $term ) {
 | |
|         $options[ $term->slug ] = $term->name;
 | |
|     }
 | |
|     return $options;
 | |
|     }
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * WooCommerce Get Product By Id
 | |
|  * @return array
 | |
|  */
 | |
| function eael_woocommerce_product_get_product_by_id(){
 | |
|     $postlist = get_posts(array(
 | |
|         'post_type' => 'product',
 | |
|         'showposts' => 9999,
 | |
|     ));
 | |
|     $posts = array();
 | |
| 
 | |
|     if ( ! empty( $postlist ) && ! is_wp_error( $postlist ) ){
 | |
|     foreach ( $postlist as $post ) {
 | |
|         $options[ $post->ID ] = $post->post_title;
 | |
|     }
 | |
|     return $options;
 | |
| 
 | |
|     }
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * WooCommerce Get Product Category By Id
 | |
|  * @return array
 | |
|  */
 | |
| function eael_woocommerce_product_categories_by_id(){
 | |
|     $terms = get_terms( array(
 | |
|         'taxonomy' => 'product_cat',
 | |
|         'hide_empty' => true,
 | |
|     ));
 | |
| 
 | |
|     if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
 | |
|     foreach ( $terms as $term ) {
 | |
|         $options[ $term->term_id ] = $term->name;
 | |
|     }
 | |
|     return $options;
 | |
|     }
 | |
| 
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Contact Form 7 [ if exists ]
 | |
|  */
 | |
| if ( function_exists( 'wpcf7' ) ) {
 | |
| function eael_select_contact_form(){
 | |
|     $wpcf7_form_list = get_posts(array(
 | |
|         'post_type' => 'wpcf7_contact_form',
 | |
|         'showposts' => 999,
 | |
|     ));
 | |
|     $posts = array();
 | |
| 
 | |
|     if ( ! empty( $wpcf7_form_list ) && ! is_wp_error( $wpcf7_form_list ) ){
 | |
|     foreach ( $wpcf7_form_list as $post ) {
 | |
|         $options[ $post->ID ] = $post->post_title;
 | |
|     }
 | |
|     return $options;
 | |
|     }
 | |
| }
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Gravity Form [ if exists ]
 | |
|  */
 | |
| 
 | |
| function eael_select_gravity_form() {
 | |
| 
 | |
|     $forms = RGFormsModel::get_forms( null, 'title' );
 | |
|     foreach( $forms as $form ) {
 | |
|       $options[ $form->id ] = $form->title;
 | |
|     }
 | |
|     return $options;
 | |
| 
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get WeForms Form List
 | |
|  * @return array
 | |
|  */
 | |
| function eael_select_weform() {
 | |
| 
 | |
|     $wpuf_form_list = get_posts( array(
 | |
|         'post_type' => 'wpuf_contact_form',
 | |
|         'showposts' => 999,
 | |
|     ));
 | |
|     $posts = array();
 | |
| 
 | |
|     if ( ! empty( $wpuf_form_list ) && ! is_wp_error( $wpuf_form_list ) ) {
 | |
|         foreach ( $wpuf_form_list as $post ) {
 | |
|             $options[ $post->ID ] = $post->post_title;
 | |
|         }
 | |
|         return $options;
 | |
|     }
 | |
| 
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Ninja Form List
 | |
|  * @return array
 | |
|  */
 | |
| function eael_select_ninja_form() {
 | |
|     global $wpdb;
 | |
|     $eael_nf_table_name = $wpdb->prefix.'nf3_forms';
 | |
|     $forms = $wpdb->get_results( "SELECT id, title FROM $eael_nf_table_name" );
 | |
|     foreach( $forms as $form ) {
 | |
|         $options[$form->id] = $form->title;
 | |
|     }
 | |
|     return $options;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get Caldera Form List
 | |
|  * @return array
 | |
|  */
 | |
| function eael_select_caldera_form() {
 | |
|     global $wpdb;
 | |
|     $eael_cf_table_name = $wpdb->prefix.'cf_forms';
 | |
|     $forms = $wpdb->get_results( "SELECT * FROM $eael_cf_table_name" );
 | |
|     foreach( $forms as $form ) {
 | |
|         $unserialize = unserialize( $form->config );
 | |
|         $form_title = $unserialize['name'];
 | |
|         $options[$form->form_id] = $form_title;
 | |
|     }
 | |
|     return $options;
 | |
| }
 | |
| 
 |