Astra_Ext_Advanced_Hooks_Loader::get_layout_details( int $layout_id )
Get Custom Layout details to send to the AJAX endpoint for quick-preview.
Description
Parameters
- $layout_id
-
(int) (Required) Custom Layout ID.
Return
(array)
Source
File: addons/advanced-hooks/classes/class-astra-ext-advanced-hooks-loader.php
public function get_layout_details( $layout_id ) { if ( ! $layout_id ) { return array(); } $display_rules = __( 'No Conditions', 'astra-addon' ); $locations = get_post_meta( $layout_id, 'ast-advanced-hook-location', true ); if ( ! empty( $locations ) ) { if ( ! ( empty( $locations['rule'] ) || ( ! empty( $locations['rule'] ) && ( 1 === count( $locations['rule'] ) && isset( $locations['rule'][0] ) && 'clflag' === $locations['rule'][0] ) ) ) ) { $display_rules = $this->column_display_location_rules( $locations ); } } $exclusion_rules = __( 'No Conditions', 'astra-addon' ); $locations = get_post_meta( $layout_id, 'ast-advanced-hook-exclusion', true ); if ( ! empty( $locations ) ) { if ( ! ( empty( $locations['rule'] ) || ( ! empty( $locations['rule'] ) && ( 1 === count( $locations['rule'] ) && isset( $locations['rule'][0] ) && 'clflag' === $locations['rule'][0] ) ) ) ) { $exclusion_rules = $this->column_display_location_rules( $locations ); } } $user_rules = __( 'No Conditions', 'astra-addon' ); $users = get_post_meta( $layout_id, 'ast-advanced-hook-users', true ); if ( is_array( $users ) && ! empty( $users ) ) { $user_rules = '<ul class="ast-layout-user-list">'; foreach ( $users as $user ) { if ( 'Clflag' !== ucfirst( $user ) ) { $user_rules .= '<li class="layout-list-item">' . Astra_Target_Rules_Fields::get_user_by_key( $user ) . '</li>'; } } $user_rules .= '</ul>'; } $display_devices_rules = __( 'No Conditions', 'astra-addon' ); $icon_style = 'font-size:17px;line-height:21px;'; $display_devices = get_post_meta( $layout_id, 'ast-advanced-display-device', true ); if ( is_array( $display_devices ) && ! empty( $display_devices ) ) { $display_devices_rules = '<div class="ast-advanced-hook-display-devices-wrap ast-advanced-hook-wrap">'; $display_devices_rules .= '<ul>'; foreach ( $display_devices as $display_device ) { switch ( $display_device ) { case 'desktop': $display_devices_rules .= '<li class="ast-desktop">' . esc_attr( __( 'Desktop', 'astra-addon' ) ) . '</li>'; break; case 'tablet': $display_devices_rules .= '<li class="ast-tablet">' . esc_attr( __( 'Tablet', 'astra-addon' ) ) . '</li>'; break; case 'mobile': $display_devices_rules .= '<li class="ast-mobile">' . esc_attr( __( 'Mobile', 'astra-addon' ) ) . '</li>'; break; } } $display_devices_rules .= '</ul>'; $display_devices_rules .= '</div>'; } $time_duration_rule = __( 'No Conditions', 'astra-addon' ); $time_duration = get_post_meta( $layout_id, 'ast-advanced-time-duration', true ); if ( isset( $time_duration ) && is_array( $time_duration ) && isset( $time_duration['enabled'] ) ) { $time_duration_rule = '<div class="ast-advanced-hook-time-duration-wrap ast-advanced-hook-wrap">'; $time_duration_rule .= '<strong>' . esc_attr( __( 'Visibility', 'astra-addon' ) ) . ': </strong>'; if ( ! Astra_Ext_Advanced_Hooks_Markup::get_time_duration_eligibility( $layout_id ) ) { $time_duration_rule .= '<p class="ast-advance-hook-visibility-icon">' . esc_attr( __( 'Not visible', 'astra-addon' ) ) . '<span style=' . esc_attr( $icon_style ) . ' class="dashicons dashicons-no"></span></p>'; } else { $start_dt = isset( $time_duration['start-dt'] ) ? gmdate( 'F j, Y, g:i a', strtotime( $time_duration['start-dt'] ) ) : '—'; $end_dt = isset( $time_duration['end-dt'] ) ? gmdate( 'F j, Y, g:i a', strtotime( $time_duration['end-dt'] ) ) : '—'; $time_duration_rule .= '<p class="ast-advance-hook-visibility-icon">' . esc_attr( __( 'Visible', 'astra-addon' ) ) . '<span style=' . esc_attr( $icon_style ) . ' class="dashicons dashicons-yes-alt"></span></p>'; $time_duration_rule .= '<p class="layout-time-field start"><strong>' . __( 'Start Date: ', 'astra-addon' ) . '</strong>' . $start_dt . '</p>'; $time_duration_rule .= '<p class="layout-time-field end"><strong>' . __( 'End Date: ', 'astra-addon' ) . '</strong>' . $end_dt . '</p>'; } $time_duration_rule .= '</div>'; } $post_title = get_the_title( $layout_id ) ? get_the_title( $layout_id ) : esc_attr( __( '(no title)', 'astra-addon' ) ); return apply_filters( 'astra_addon_custom_layout_preview_details', array( 'layout_id' => $layout_id, 'layout_type' => ucfirst( get_post_meta( $layout_id, 'ast-advanced-hook-layout', true ) ), 'status' => ucfirst( get_post_status( $layout_id ) ), 'title' => $post_title, 'edit_link' => admin_url( '/post.php?post=' . $layout_id . '&action=edit' ), 'display_rules' => $display_rules, 'exclusion_rules' => $exclusion_rules, 'display_devices_rules' => $display_devices_rules, 'time_duration_rule' => $time_duration_rule, 'user_rules' => $user_rules, 'post_date' => get_the_date( '', $layout_id ), ), $layout_id ); }
Expand full source code Collapse full source code View on Trac