updated plugin GP Premium
version 2.0.3
This commit is contained in:
@ -47,6 +47,7 @@ class GeneratePress_Elements_Metabox {
|
||||
add_action( 'save_post', array( $this, 'save' ) );
|
||||
add_action( 'wp_ajax_generate_elements_get_location_terms', array( $this, 'get_terms' ) );
|
||||
add_action( 'wp_ajax_generate_elements_get_location_posts', array( $this, 'get_posts' ) );
|
||||
add_action( 'wp_ajax_generate_elements_get_location_objects', array( $this, 'get_all_objects' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
@ -63,6 +64,14 @@ class GeneratePress_Elements_Metabox {
|
||||
|
||||
if ( ! $element_type ) {
|
||||
$element_type = 'no-element-type';
|
||||
|
||||
if ( function_exists( 'get_current_screen' ) ) {
|
||||
$current_screen = get_current_screen();
|
||||
|
||||
if ( ! empty( $current_screen->is_block_editor ) ) {
|
||||
$element_type = 'block';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $element_type;
|
||||
@ -87,9 +96,21 @@ class GeneratePress_Elements_Metabox {
|
||||
$classes .= ' no-element-type';
|
||||
}
|
||||
|
||||
if ( 'header' === $element_type && get_post_meta( get_the_ID(), '_generate_element_content', true ) ) {
|
||||
$classes .= ' element-has-page-hero';
|
||||
}
|
||||
|
||||
$block_type = get_post_meta( get_the_ID(), '_generate_block_type', true );
|
||||
|
||||
if ( $block_type ) {
|
||||
if ( 'content-template' === $block_type && get_post_meta( get_the_ID(), '_generate_use_theme_post_container', true ) ) {
|
||||
$classes .= ' using-theme-post-container';
|
||||
}
|
||||
|
||||
if ( ( 'archive-navigation-template' === $block_type || 'post-navigation-template' === $block_type ) && get_post_meta( get_the_ID(), '_generate_use_archive_navigation_container', true ) ) {
|
||||
$classes .= ' using-theme-pagination-container';
|
||||
}
|
||||
|
||||
$classes .= ' ' . $block_type . '-block-type';
|
||||
}
|
||||
}
|
||||
@ -152,7 +173,12 @@ class GeneratePress_Elements_Metabox {
|
||||
wp_enqueue_media();
|
||||
wp_enqueue_script( 'wp-color-picker' );
|
||||
wp_enqueue_style( 'wp-color-picker' );
|
||||
wp_enqueue_script( 'wp-color-picker-alpha', GP_LIBRARY_DIRECTORY_URL . 'alpha-color-picker/wp-color-picker-alpha.min.js', array( 'wp-color-picker' ), '2.1.4', true );
|
||||
wp_enqueue_script( 'wp-color-picker-alpha', GP_LIBRARY_DIRECTORY_URL . 'alpha-color-picker/wp-color-picker-alpha.min.js', array( 'wp-color-picker' ), '3.0.0', true );
|
||||
|
||||
wp_add_inline_script(
|
||||
'wp-color-picker-alpha',
|
||||
'jQuery( function() { jQuery( ".color-picker" ).wpColorPicker(); } );'
|
||||
);
|
||||
|
||||
if ( function_exists( 'wp_add_inline_script' ) && function_exists( 'generate_get_default_color_palettes' ) ) {
|
||||
// Grab our palette array and turn it into JS.
|
||||
@ -167,31 +193,12 @@ class GeneratePress_Elements_Metabox {
|
||||
wp_enqueue_script( 'select2', GP_LIBRARY_DIRECTORY_URL . 'select2/select2.full.min.js', array( 'jquery', 'generate-elements-metabox' ), '4.0.13', true );
|
||||
|
||||
$css = '';
|
||||
$containerWidth = function_exists( 'generate_get_option' ) ? generate_get_option( 'container_width' ) : 1100;
|
||||
$rightSidebarWidth = apply_filters( 'generate_right_sidebar_width', '25' );
|
||||
$leftSidebarWidth = apply_filters( 'generate_left_sidebar_width', '25' );
|
||||
|
||||
$containerWidth = floatval( $containerWidth );
|
||||
$leftSidebarWidth = '0.' . $leftSidebarWidth;
|
||||
$rightSidebarWidth = '0.' . $rightSidebarWidth;
|
||||
|
||||
$leftSidebarWidth = $containerWidth - ( $containerWidth * $leftSidebarWidth );
|
||||
$rightSidebarWidth = $containerWidth - ( $containerWidth * $rightSidebarWidth );
|
||||
|
||||
$leftSidebarWidth = $containerWidth - $leftSidebarWidth;
|
||||
$rightSidebarWidth = $containerWidth - $rightSidebarWidth;
|
||||
|
||||
$css .= '.left-sidebar-block-type div:not(.block-editor-inner-blocks) > .block-editor-block-list__layout {max-width:' . $leftSidebarWidth . 'px;margin-left: auto;margin-right: auto;box-sizing: content-box;}';
|
||||
$css .= '.right-sidebar-block-type div:not(.block-editor-inner-blocks) > .block-editor-block-list__layout {max-width:' . $rightSidebarWidth . 'px;margin-left: auto;margin-right: auto;box-sizing: content-box;}';
|
||||
$css .= '.left-sidebar-block-type div:not(.block-editor-inner-blocks) > .block-editor-block-list__layout, .right-sidebar-block-type div:not(.block-editor-inner-blocks) > .block-editor-block-list__layout {padding: 10px;}';
|
||||
$css .= 'body.left-sidebar-block-type div:not(.block-editor-inner-blocks) > .block-editor-block-list__layout .block-editor-block-list__block, body.right-sidebar-block-type div:not(.block-editor-inner-blocks) > .block-editor-block-list__layout .block-editor-block-list__block {margin-top:0;margin-bottom:0;}';
|
||||
|
||||
if ( function_exists( 'generate_get_option' ) && 'separate-containers' === generate_get_option( 'content_layout_setting' ) ) {
|
||||
$css .= 'body.left-sidebar-block-type div:not(.block-editor-inner-blocks) > .block-editor-block-list__layout, body.right-sidebar-block-type div:not(.block-editor-inner-blocks) > .block-editor-block-list__layout {background: ' . generate_get_option( 'background_color' ) . ';}';
|
||||
$css .= 'body.left-sidebar-block-type .block-editor-block-list__layout.is-root-container, body.right-sidebar-block-type .block-editor-block-list__layout.is-root-container {background: ' . generate_get_option( 'background_color' ) . ';}';
|
||||
$css .= 'body.content-template-block-type:not(.using-theme-post-container) .block-editor-block-list__layout.is-root-container, body.archive-navigation-template-block-type:not(.using-theme-pagination-container) .block-editor-block-list__layout.is-root-container {background: ' . generate_get_option( 'background_color' ) . ';}';
|
||||
}
|
||||
|
||||
$css .= '.editor-styles-wrapper .wp-block:not(.editor-post-title__block), .site-header-block-type .editor-styles-wrapper .wp-block:not(.editor-post-title__block), .site-footer-block-type .editor-styles-wrapper .wp-block:not(.editor-post-title__block) {max-width: 100%;}';
|
||||
|
||||
wp_add_inline_style( 'generate-elements-metabox', $css );
|
||||
}
|
||||
}
|
||||
@ -204,7 +211,7 @@ class GeneratePress_Elements_Metabox {
|
||||
*/
|
||||
public function register_metabox() {
|
||||
// Title not translated on purpose.
|
||||
add_meta_box( 'generate_premium_elements', 'Element', array( $this, 'element_fields' ), 'gp_elements', 'normal' );
|
||||
add_meta_box( 'generate_premium_elements', 'Element', array( $this, 'element_fields' ), 'gp_elements', 'normal', 'high' );
|
||||
add_meta_box( 'generate_page_hero_template_tags', __( 'Template Tags', 'gp-premium' ), array( $this, 'template_tags' ), 'gp_elements', 'side', 'low' );
|
||||
remove_meta_box( 'slugdiv', 'gp_elements', 'normal' );
|
||||
}
|
||||
@ -220,9 +227,14 @@ class GeneratePress_Elements_Metabox {
|
||||
wp_nonce_field( basename( __FILE__ ), 'generate_elements_nonce' );
|
||||
|
||||
$type = self::get_element_type();
|
||||
$page_hero_class = '';
|
||||
$merge = get_post_meta( get_the_ID(), '_generate_site_header_merge', true );
|
||||
$conditions_set = get_post_meta( get_the_ID(), '_generate_element_display_conditions', true );
|
||||
$post_status = get_post_status( get_the_ID() );
|
||||
|
||||
if ( 'header' === $type && get_post_meta( get_the_ID(), '_generate_element_content', true ) ) {
|
||||
$page_hero_class = ' has-page-hero';
|
||||
}
|
||||
?>
|
||||
<div class="gp-element-type" style="display: none;">
|
||||
<select class="select-type" name="_generate_element_type">
|
||||
@ -240,29 +252,29 @@ class GeneratePress_Elements_Metabox {
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="element-settings <?php echo esc_html( $type ); ?>">
|
||||
<div class="element-settings <?php echo esc_html( $type . $page_hero_class ); ?>">
|
||||
<?php if ( 'hook' === $type || 'header' === $type ) : ?>
|
||||
<textarea id="generate-element-content" name="_generate_element_content"><?php echo esc_textarea( get_post_meta( get_the_ID(), '_generate_element_content', true ) ); ?></textarea>
|
||||
<?php endif; ?>
|
||||
|
||||
<ul class="element-metabox-tabs">
|
||||
<?php if ( 'header' === $type ) : ?>
|
||||
<li data-type="header" <?php echo 'header' === $type ? 'class="is-selected" ' : ''; ?>data-tab="hero">
|
||||
<li data-type="header" <?php echo 'header' === $type && '' === $page_hero_class ? 'class="is-selected" ' : ''; ?>data-tab="site-header">
|
||||
<a href="#">
|
||||
<?php _e( 'Page Hero', 'gp-premium' ); ?>
|
||||
<?php _e( 'Site Header', 'gp-premium' ); ?>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li data-type="header" data-tab="site-header">
|
||||
<li data-type="header" <?php echo 'header' === $type && '' !== $page_hero_class ? 'class="is-selected" ' : ''; ?>data-tab="hero">
|
||||
<a href="#">
|
||||
<?php _e( 'Site Header', 'gp-premium' ); ?>
|
||||
<?php _e( 'Page Hero', 'gp-premium' ); ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<li data-type="hook" <?php echo ( 'hook' === $type || 'block' === $type ) ? 'class="is-selected" ' : ''; ?>data-tab="hook-settings">
|
||||
<a href="#">
|
||||
<?php _e( 'Settings', 'gp-premium' ); ?>
|
||||
<?php echo 'block' === $type ? esc_attr__( 'Display Rules', 'gp-premium' ) : esc_attr__( 'Settings', 'gp-premium' ); ?>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@ -312,30 +324,7 @@ class GeneratePress_Elements_Metabox {
|
||||
<table class="generate-elements-settings" data-type="hook" data-tab="hook-settings">
|
||||
<tbody>
|
||||
<?php
|
||||
if ( 'block' === $type ) :
|
||||
?>
|
||||
<tr id="block-row" class="generate-element-row">
|
||||
<td class="generate-element-row-heading">
|
||||
<label for="_generate_block_type"><?php _e( 'Block Type', 'gp-premium' ); ?></label>
|
||||
</td>
|
||||
<td class="generate-element-row-content">
|
||||
<select id="_generate_block_type" name="_generate_block_type">
|
||||
<option <?php selected( get_post_meta( get_the_ID(), '_generate_block_type', true ), 'hook' ); ?> value="hook"><?php esc_attr_e( 'Hook', 'gp-premium' ); ?></option>
|
||||
<option <?php selected( get_post_meta( get_the_ID(), '_generate_block_type', true ), 'site-header' ); ?> value="site-header"><?php esc_attr_e( 'Site Header', 'gp-premium' ); ?></option>
|
||||
<option <?php selected( get_post_meta( get_the_ID(), '_generate_block_type', true ), 'site-footer' ); ?> value="site-footer"><?php esc_attr_e( 'Site Footer', 'gp-premium' ); ?></option>
|
||||
<option <?php selected( get_post_meta( get_the_ID(), '_generate_block_type', true ), 'right-sidebar' ); ?> value="right-sidebar"><?php esc_attr_e( 'Right Sidebar', 'gp-premium' ); ?></option>
|
||||
<option <?php selected( get_post_meta( get_the_ID(), '_generate_block_type', true ), 'left-sidebar' ); ?> value="left-sidebar"><?php esc_attr_e( 'Left Sidebar', 'gp-premium' ); ?></option>
|
||||
</select>
|
||||
|
||||
<div class="sidebar-notice" <?php echo 'left-sidebar' === get_post_meta( get_the_ID(), '_generate_block_type', true ) || 'right-sidebar' === get_post_meta( get_the_ID(), '_generate_block_type', true ) ? 'style="display: block;"' : ''; ?>>
|
||||
<?php _e( 'This will remove the current sidebar widgets for the selected sidebar. Your layout must have a sidebar set for this Element to show.', 'gp-premium' ); ?>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
endif;
|
||||
|
||||
if ( 'hook' === $type || 'block' === $type ) :
|
||||
if ( 'hook' === $type ) :
|
||||
?>
|
||||
<tr id="hook-row" class="generate-element-row hook-row <?php echo '' !== get_post_meta( get_the_ID(), '_generate_block_type', true ) && 'hook' !== get_post_meta( get_the_ID(), '_generate_block_type', true ) ? 'hide-hook-row' : ''; ?>">
|
||||
<td class="generate-element-row-heading">
|
||||
@ -430,7 +419,7 @@ class GeneratePress_Elements_Metabox {
|
||||
<?php
|
||||
endif;
|
||||
|
||||
if ( 'hook' === $type || 'block' === $type ) :
|
||||
if ( 'hook' === $type ) :
|
||||
?>
|
||||
<tr class="generate-element-row hook-row <?php echo '' !== get_post_meta( get_the_ID(), '_generate_block_type', true ) && 'hook' !== get_post_meta( get_the_ID(), '_generate_block_type', true ) ? 'hide-hook-row' : ''; ?>">
|
||||
<td class="generate-element-row-heading">
|
||||
@ -753,7 +742,7 @@ class GeneratePress_Elements_Metabox {
|
||||
<label for="_generate_hero_background_color"><?php _e( 'Background Color', 'gp-premium' ); ?></label>
|
||||
</td>
|
||||
<td class="generate-element-row-content">
|
||||
<input class="color-picker" data-alpha="true" type="text" name="_generate_hero_background_color" id="_generate_hero_background_color" value="<?php echo esc_attr( get_post_meta( get_the_ID(), '_generate_hero_background_color', true ) ); ?>" />
|
||||
<input class="color-picker" data-alpha-enabled="true" data-alpha-color-type="hex" type="text" name="_generate_hero_background_color" id="_generate_hero_background_color" value="<?php echo esc_attr( get_post_meta( get_the_ID(), '_generate_hero_background_color', true ) ); ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -836,7 +825,7 @@ class GeneratePress_Elements_Metabox {
|
||||
<label for="_generate_site_header_background_color"><?php _e( 'Header Background', 'gp-premium' ); ?></label>
|
||||
</td>
|
||||
<td class="generate-element-row-content">
|
||||
<input class="color-picker" data-alpha="true" type="text" name="_generate_site_header_background_color" id="_generate_site_header_background_color" value="<?php echo esc_attr( get_post_meta( get_the_ID(), '_generate_site_header_background_color', true ) ); ?>" />
|
||||
<input class="color-picker" data-alpha-enabled="true" data-alpha-color-type="hex" type="text" name="_generate_site_header_background_color" id="_generate_site_header_background_color" value="<?php echo esc_attr( get_post_meta( get_the_ID(), '_generate_site_header_background_color', true ) ); ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -998,7 +987,7 @@ class GeneratePress_Elements_Metabox {
|
||||
<label for="_generate_navigation_background_color"><?php _e( 'Navigation Background', 'gp-premium' ); ?></label>
|
||||
</td>
|
||||
<td class="generate-element-row-content">
|
||||
<input class="color-picker" data-alpha="true" type="text" name="_generate_navigation_background_color" id="_generate_navigation_background_color" value="<?php echo esc_attr( get_post_meta( get_the_ID(), '_generate_navigation_background_color', true ) ); ?>" />
|
||||
<input class="color-picker" data-alpha-enabled="true" data-alpha-color-type="hex" type="text" name="_generate_navigation_background_color" id="_generate_navigation_background_color" value="<?php echo esc_attr( get_post_meta( get_the_ID(), '_generate_navigation_background_color', true ) ); ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -1016,7 +1005,7 @@ class GeneratePress_Elements_Metabox {
|
||||
<label for="_generate_navigation_background_color_hover"><?php _e( 'Navigation Background Hover', 'gp-premium' ); ?></label>
|
||||
</td>
|
||||
<td class="generate-element-row-content">
|
||||
<input class="color-picker" data-alpha="true" type="text" name="_generate_navigation_background_color_hover" id="_generate_navigation_background_color_hover" value="<?php echo esc_attr( get_post_meta( get_the_ID(), '_generate_navigation_background_color_hover', true ) ); ?>" />
|
||||
<input class="color-picker" data-alpha-enabled="true" data-alpha-color-type="hex" type="text" name="_generate_navigation_background_color_hover" id="_generate_navigation_background_color_hover" value="<?php echo esc_attr( get_post_meta( get_the_ID(), '_generate_navigation_background_color_hover', true ) ); ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -1034,7 +1023,7 @@ class GeneratePress_Elements_Metabox {
|
||||
<label for="_generate_navigation_background_color_current"><?php _e( 'Navigation Background Current', 'gp-premium' ); ?></label>
|
||||
</td>
|
||||
<td class="generate-element-row-content">
|
||||
<input class="color-picker" data-alpha="true" type="text" name="_generate_navigation_background_color_current" id="_generate_navigation_background_color_current" value="<?php echo esc_attr( get_post_meta( get_the_ID(), '_generate_navigation_background_color_current', true ) ); ?>" />
|
||||
<input class="color-picker" data-alpha-enabled="true" data-alpha-color-type="hex" type="text" name="_generate_navigation_background_color_current" id="_generate_navigation_background_color_current" value="<?php echo esc_attr( get_post_meta( get_the_ID(), '_generate_navigation_background_color_current', true ) ); ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -1659,17 +1648,6 @@ class GeneratePress_Elements_Metabox {
|
||||
delete_post_meta( $post_id, $type_key );
|
||||
}
|
||||
|
||||
// Save the block type.
|
||||
if ( 'block' === $type_value && isset( $_POST['_generate_block_type'] ) ) {
|
||||
$block_type_value = sanitize_key( $_POST['_generate_block_type'] );
|
||||
|
||||
if ( $block_type_value ) {
|
||||
update_post_meta( $post_id, '_generate_block_type', $block_type_value );
|
||||
} else {
|
||||
delete_post_meta( $post_id, '_generate_block_type' );
|
||||
}
|
||||
}
|
||||
|
||||
// Content.
|
||||
if ( isset( $_POST['_generate_element_content'] ) ) {
|
||||
$key = '_generate_element_content';
|
||||
@ -1688,7 +1666,7 @@ class GeneratePress_Elements_Metabox {
|
||||
}
|
||||
|
||||
// Save Hooks type.
|
||||
if ( 'hook' === $type_value || 'block' === $type_value ) {
|
||||
if ( 'hook' === $type_value ) {
|
||||
$hook_values = array(
|
||||
'_generate_hook' => 'text',
|
||||
'_generate_custom_hook' => 'text',
|
||||
@ -2078,45 +2056,93 @@ class GeneratePress_Elements_Metabox {
|
||||
die();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all of our posts and terms in one go on load.
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
public function get_all_objects() {
|
||||
check_ajax_referer( 'generate-elements-location', 'nonce' );
|
||||
|
||||
$current_user_can = 'manage_options';
|
||||
|
||||
if ( apply_filters( 'generate_elements_metabox_ajax_allow_editors', false ) ) {
|
||||
$current_user_can = 'edit_posts';
|
||||
}
|
||||
|
||||
if ( ! current_user_can( $current_user_can ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! isset( $_POST['posts'] ) && ! isset( $_POST['terms'] ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$posts = array();
|
||||
$terms = array();
|
||||
|
||||
if ( ! empty( $_POST['posts'] ) ) {
|
||||
$posts = array_map( 'sanitize_text_field', $_POST['posts'] );
|
||||
}
|
||||
|
||||
if ( ! empty( $_POST['terms'] ) ) {
|
||||
$terms = array_map( 'sanitize_text_field', $_POST['terms'] );
|
||||
}
|
||||
|
||||
$all_posts = self::get_post_type_posts( $posts );
|
||||
$all_terms = self::get_taxonomy_terms( $terms );
|
||||
|
||||
echo wp_json_encode( array_merge( $all_posts, $all_terms ) );
|
||||
|
||||
die();
|
||||
}
|
||||
|
||||
/**
|
||||
* Look up posts inside a post type.
|
||||
*
|
||||
* @since 1.7
|
||||
*
|
||||
* @param string $post_type The post type to look up.
|
||||
* @param string|array $post_type The post type to look up.
|
||||
* @return array
|
||||
*/
|
||||
public static function get_post_type_posts( $post_type ) {
|
||||
|
||||
global $wpdb;
|
||||
|
||||
$post_status = array( 'publish', 'future', 'draft', 'pending', 'private' );
|
||||
|
||||
$object = get_post_type_object( $post_type );
|
||||
|
||||
$data = array(
|
||||
'type' => 'posts',
|
||||
'postType' => $post_type,
|
||||
'label' => $object->label,
|
||||
'objects' => array(),
|
||||
);
|
||||
|
||||
if ( 'attachment' === $post_type ) {
|
||||
$posts = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_title from $wpdb->posts where post_type = %s ORDER BY post_title", $post_type ) );
|
||||
|
||||
} else {
|
||||
$format = implode( ', ', array_fill( 0, count( $post_status ), '%s' ) );
|
||||
$query = sprintf( "SELECT ID, post_title from $wpdb->posts where post_type = '%s' AND post_status IN(%s) ORDER BY post_title", $post_type, $format );
|
||||
// @codingStandardsIgnoreLine
|
||||
$posts = $wpdb->get_results( $wpdb->prepare( $query, $post_status ) );
|
||||
if ( ! is_array( $post_type ) ) {
|
||||
$post_type = array( $post_type );
|
||||
}
|
||||
|
||||
foreach ( $posts as $post ) {
|
||||
$title = ( '' !== $post->post_title ) ? esc_attr( $post->post_title ) : $post_type . '-' . $post->ID;
|
||||
$data['objects'][] = array(
|
||||
'id' => $post->ID,
|
||||
'name' => $title,
|
||||
$data = array();
|
||||
|
||||
foreach ( $post_type as $type ) {
|
||||
global $wpdb;
|
||||
|
||||
$post_status = array( 'publish', 'future', 'draft', 'pending', 'private' );
|
||||
|
||||
$object = get_post_type_object( $type );
|
||||
|
||||
$data[ $type ] = array(
|
||||
'type' => 'posts',
|
||||
'postType' => $type,
|
||||
'label' => $object->label,
|
||||
'objects' => array(),
|
||||
);
|
||||
|
||||
if ( 'attachment' === $type ) {
|
||||
$posts = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_title from $wpdb->posts where post_type = %s ORDER BY post_title", $type ) );
|
||||
|
||||
} else {
|
||||
$format = implode( ', ', array_fill( 0, count( $post_status ), '%s' ) );
|
||||
$query = sprintf( "SELECT ID, post_title from $wpdb->posts where post_type = '%s' AND post_status IN(%s) ORDER BY post_title", $type, $format );
|
||||
// @codingStandardsIgnoreLine
|
||||
$posts = $wpdb->get_results( $wpdb->prepare( $query, $post_status ) );
|
||||
}
|
||||
|
||||
foreach ( $posts as $post ) {
|
||||
$title = ( '' !== $post->post_title ) ? esc_attr( $post->post_title ) : $type . '-' . $post->ID;
|
||||
$data[ $type ]['objects'][] = array(
|
||||
'id' => $post->ID,
|
||||
'name' => $title,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
@ -2127,31 +2153,39 @@ class GeneratePress_Elements_Metabox {
|
||||
*
|
||||
* @since 1.7
|
||||
*
|
||||
* @param int $tax_id The taxonomy ID.
|
||||
* @param int|array $tax_id The taxonomy ID.
|
||||
* @return array
|
||||
*/
|
||||
public static function get_taxonomy_terms( $tax_id ) {
|
||||
$tax = get_taxonomy( $tax_id );
|
||||
if ( ! is_array( $tax_id ) ) {
|
||||
$tax_id = array( $tax_id );
|
||||
}
|
||||
|
||||
$terms = get_terms(
|
||||
array(
|
||||
'taxonomy' => $tax_id,
|
||||
'hide_empty' => false,
|
||||
)
|
||||
);
|
||||
$data = array();
|
||||
|
||||
$data = array(
|
||||
'type' => 'terms',
|
||||
'taxonomy' => $tax_id,
|
||||
'label' => $tax->label,
|
||||
'objects' => array(),
|
||||
);
|
||||
foreach ( $tax_id as $id ) {
|
||||
$tax = get_taxonomy( $id );
|
||||
|
||||
foreach ( $terms as $term ) {
|
||||
$data['objects'][] = array(
|
||||
'id' => $term->term_id,
|
||||
'name' => esc_attr( $term->name ),
|
||||
$terms = get_terms(
|
||||
array(
|
||||
'taxonomy' => $id,
|
||||
'hide_empty' => false,
|
||||
)
|
||||
);
|
||||
|
||||
$data[ $id ] = array(
|
||||
'type' => 'terms',
|
||||
'taxonomy' => $id,
|
||||
'label' => $tax->label,
|
||||
'objects' => array(),
|
||||
);
|
||||
|
||||
foreach ( $terms as $term ) {
|
||||
$data[ $id ]['objects'][] = array(
|
||||
'id' => $term->term_id,
|
||||
'name' => esc_attr( $term->name ),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
@ -2165,209 +2199,7 @@ class GeneratePress_Elements_Metabox {
|
||||
* @return array Our list of hooks.
|
||||
*/
|
||||
public static function get_available_hooks() {
|
||||
$hooks = array(
|
||||
'scripts' => array(
|
||||
'group' => esc_attr__( 'Scripts & Styles', 'gp-premium' ),
|
||||
'hooks' => array(
|
||||
'wp_head',
|
||||
'wp_body_open',
|
||||
'wp_footer',
|
||||
),
|
||||
),
|
||||
'header' => array(
|
||||
'group' => esc_attr__( 'Header', 'gp-premium' ),
|
||||
'hooks' => array(
|
||||
'generate_before_header',
|
||||
'generate_after_header',
|
||||
'generate_before_header_content',
|
||||
'generate_after_header_content',
|
||||
'generate_before_logo',
|
||||
'generate_after_logo',
|
||||
'generate_header',
|
||||
),
|
||||
),
|
||||
'navigation' => array(
|
||||
'group' => esc_attr__( 'Navigation', 'gp-premium' ),
|
||||
'hooks' => array(
|
||||
'generate_inside_navigation',
|
||||
'generate_inside_secondary_navigation',
|
||||
'generate_inside_mobile_menu',
|
||||
'generate_inside_mobile_menu_bar',
|
||||
'generate_inside_mobile_header',
|
||||
'generate_inside_slideout_navigation',
|
||||
'generate_after_slideout_navigation',
|
||||
),
|
||||
),
|
||||
'content' => array(
|
||||
'group' => esc_attr__( 'Content', 'gp-premium' ),
|
||||
'hooks' => array(
|
||||
'generate_inside_site_container',
|
||||
'generate_inside_container',
|
||||
'generate_before_main_content',
|
||||
'generate_after_main_content',
|
||||
'generate_before_content',
|
||||
'generate_after_content',
|
||||
'generate_after_entry_content',
|
||||
'generate_after_primary_content_area',
|
||||
'generate_before_entry_title',
|
||||
'generate_after_entry_title',
|
||||
'generate_after_entry_header',
|
||||
'generate_before_archive_title',
|
||||
'generate_after_archive_title',
|
||||
'generate_after_archive_description',
|
||||
),
|
||||
),
|
||||
'comments' => array(
|
||||
'group' => esc_attr__( 'Comments', 'gp-premium' ),
|
||||
'hooks' => array(
|
||||
'generate_before_comments_container',
|
||||
'generate_before_comments',
|
||||
'generate_inside_comments',
|
||||
'generate_below_comments_title',
|
||||
),
|
||||
),
|
||||
'sidebars' => array(
|
||||
'group' => esc_attr__( 'Sidebars', 'gp-premium' ),
|
||||
'hooks' => array(
|
||||
'generate_before_right_sidebar_content',
|
||||
'generate_after_right_sidebar_content',
|
||||
'generate_before_left_sidebar_content',
|
||||
'generate_after_left_sidebar_content',
|
||||
),
|
||||
),
|
||||
'footer' => array(
|
||||
'group' => esc_attr__( 'Footer', 'gp-premium' ),
|
||||
'hooks' => array(
|
||||
'generate_before_footer',
|
||||
'generate_after_footer',
|
||||
'generate_after_footer_widgets',
|
||||
'generate_before_footer_content',
|
||||
'generate_after_footer_content',
|
||||
'generate_footer',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
if ( class_exists( 'WooCommerce' ) ) {
|
||||
$hooks['navigation']['hooks'][] = 'generate_mobile_cart_items';
|
||||
|
||||
$hooks['woocommerce-global'] = array(
|
||||
'group' => esc_attr__( 'WooCommerce - Global', 'gp-premium' ),
|
||||
'hooks' => array(
|
||||
'woocommerce_before_main_content',
|
||||
'woocommerce_after_main_content',
|
||||
'woocommerce_sidebar',
|
||||
'woocommerce_breadcrumb',
|
||||
),
|
||||
);
|
||||
|
||||
$hooks['woocommerce-shop'] = array(
|
||||
'group' => esc_attr__( 'WooCommerce - Shop', 'gp-premium' ),
|
||||
'hooks' => array(
|
||||
'woocommerce_archive_description',
|
||||
'woocommerce_before_shop_loop',
|
||||
'woocommerce_after_shop_loop',
|
||||
'woocommerce_before_shop_loop_item_title',
|
||||
'woocommerce_after_shop_loop_item_title',
|
||||
),
|
||||
);
|
||||
|
||||
$hooks['woocommerce-product'] = array(
|
||||
'group' => esc_attr__( 'WooCommerce - Product', 'gp-premium' ),
|
||||
'hooks' => array(
|
||||
'woocommerce_before_single_product',
|
||||
'woocommerce_before_single_product_summary',
|
||||
'woocommerce_after_single_product_summary',
|
||||
'woocommerce_single_product_summary',
|
||||
'woocommerce_share',
|
||||
'woocommerce_simple_add_to_cart',
|
||||
'woocommerce_before_add_to_cart_form',
|
||||
'woocommerce_after_add_to_cart_form',
|
||||
'woocommerce_before_add_to_cart_button',
|
||||
'woocommerce_after_add_to_cart_button',
|
||||
'woocommerce_before_add_to_cart_quantity',
|
||||
'woocommerce_after_add_to_cart_quantity',
|
||||
'woocommerce_product_meta_start',
|
||||
'woocommerce_product_meta_end',
|
||||
'woocommerce_after_single_product',
|
||||
),
|
||||
);
|
||||
|
||||
$hooks['woocommerce-cart'] = array(
|
||||
'group' => esc_attr__( 'WooCommerce - Cart', 'gp-premium' ),
|
||||
'hooks' => array(
|
||||
'woocommerce_before_calculate_totals',
|
||||
'woocommerce_after_calculate_totals',
|
||||
'woocommerce_before_cart',
|
||||
'woocommerce_after_cart_table',
|
||||
'woocommerce_before_cart_table',
|
||||
'woocommerce_before_cart_contents',
|
||||
'woocommerce_cart_contents',
|
||||
'woocommerce_after_cart_contents',
|
||||
'woocommerce_cart_coupon',
|
||||
'woocommerce_cart_actions',
|
||||
'woocommerce_before_cart_totals',
|
||||
'woocommerce_cart_totals_before_order_total',
|
||||
'woocommerce_cart_totals_after_order_total',
|
||||
'woocommerce_proceed_to_checkout',
|
||||
'woocommerce_after_cart_totals',
|
||||
'woocommerce_after_cart',
|
||||
),
|
||||
);
|
||||
|
||||
$hooks['woocommerce-checkout'] = array(
|
||||
'group' => esc_attr__( 'WooCommerce - Checkout', 'gp-premium' ),
|
||||
'hooks' => array(
|
||||
'woocommerce_before_checkout_form',
|
||||
'woocommerce_checkout_before_customer_details',
|
||||
'woocommerce_checkout_after_customer_details',
|
||||
'woocommerce_checkout_billing',
|
||||
'woocommerce_before_checkout_billing_form',
|
||||
'woocommerce_after_checkout_billing_form',
|
||||
'woocommerce_before_order_notes',
|
||||
'woocommerce_after_order_notes',
|
||||
'woocommerce_checkout_shipping',
|
||||
'woocommerce_checkout_before_order_review',
|
||||
'woocommerce_checkout_order_review',
|
||||
'woocommerce_review_order_before_cart_contents',
|
||||
'woocommerce_review_order_after_cart_contents',
|
||||
'woocommerce_review_order_before_order_total',
|
||||
'woocommerce_review_order_after_order_total',
|
||||
'woocommerce_review_order_before_payment',
|
||||
'woocommerce_review_order_before_submit',
|
||||
'woocommerce_review_order_after_submit',
|
||||
'woocommerce_review_order_after_payment',
|
||||
'woocommerce_checkout_after_order_review',
|
||||
'woocommerce_after_checkout_form',
|
||||
),
|
||||
);
|
||||
|
||||
$hooks['woocommerce-account'] = array(
|
||||
'group' => esc_attr__( 'WooCommerce - Account', 'gp-premium' ),
|
||||
'hooks' => array(
|
||||
'woocommerce_before_account_navigation',
|
||||
'woocommerce_account_navigation',
|
||||
'woocommerce_after_account_navigation',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
if ( function_exists( 'generate_is_using_flexbox' ) && generate_is_using_flexbox() ) {
|
||||
$hooks['navigation']['hooks'][] = 'generate_menu_bar_items';
|
||||
}
|
||||
|
||||
if ( defined( 'GENERATE_VERSION' ) && version_compare( GENERATE_VERSION, '3.0.0-alpha.1', '>' ) ) {
|
||||
$hooks['navigation']['hooks'][] = 'generate_before_navigation';
|
||||
$hooks['navigation']['hooks'][] = 'generate_after_navigation';
|
||||
$hooks['navigation']['hooks'][] = 'generate_after_mobile_menu_button';
|
||||
$hooks['navigation']['hooks'][] = 'generate_inside_mobile_menu_control_wrapper';
|
||||
|
||||
$hooks['content']['hooks'][] = 'generate_after_loop';
|
||||
$hooks['content']['hooks'][] = 'generate_before_do_template_part';
|
||||
$hooks['content']['hooks'][] = 'generate_after_do_template_part';
|
||||
}
|
||||
|
||||
return apply_filters( 'generate_hooks_list', $hooks );
|
||||
return GeneratePress_Elements_Helper::get_available_hooks();
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user