AdminHelper
Class AdminHelper.
Source
File: admin-core/inc/admin-helper.php
class AdminHelper { /** * Meta_options. * * @var object instance */ public static $meta_options = array(); /** * Common. * * @var object instance */ public static $common = null; /** * Permalink setting. * * @var object instance */ public static $permalink_setting = null; /** * Facebook. * * @var object instance */ public static $facebook = null; /** * Google_analytics_settings. * * @var object instance */ public static $google_analytics_settings = null; /** * Options. * * @var object instance */ public static $options = null; /** * Get flow meta options. * * @param int $post_id post id. * @return array. */ public static function get_flow_meta_options( $post_id ) { if ( ! isset( self::$meta_options[ $post_id ] ) ) { /** * Set metabox options */ $default_meta = wcf()->options->get_flow_fields( $post_id ); $stored_meta = get_post_meta( $post_id ); /** * Get options */ self::$meta_options[ $post_id ] = self::get_prepared_meta_options( $default_meta, $stored_meta ); } return self::$meta_options[ $post_id ]; } /** * Get step meta options. * * @param int $step_id step id. * @return array. */ public static function get_step_meta_options( $step_id ) { if ( ! isset( self::$meta_options[ $step_id ] ) ) { $step_type = wcf_get_step_type( $step_id ); $step_fields = array(); $step_tabs = array(); $default_meta = self::get_step_default_meta( $step_type, $step_id ); $stored_meta = get_post_meta( $step_id ); $prepared_options = self::get_prepared_meta_options( $default_meta, $stored_meta ); $prepared_options = apply_filters( 'cartflows_' . $step_type . '_step_meta_fields', $prepared_options, $step_id ); $step_tabs = apply_filters( 'cartflows_' . $step_type . '_step_tabs', $step_tabs ); /** * Get options */ self::$meta_options[ $step_id ]['type'] = $step_type; self::$meta_options[ $step_id ]['tabs'] = $step_tabs; self::$meta_options[ $step_id ]['options'] = $prepared_options; } return self::$meta_options[ $step_id ]; } /** * Merge default and saved meta options. * * @param array $default_meta Default meta. * @param array $stored_meta Saved meta. * @return array. */ public static function get_prepared_meta_options( $default_meta, $stored_meta ) { $meta_options = array(); // Set stored and override defaults. foreach ( $default_meta as $key => $value ) { $meta_options[ $key ] = ( isset( $stored_meta[ $key ][0] ) ) ? maybe_unserialize( $stored_meta[ $key ][0] ) : $default_meta[ $key ]['default']; } return $meta_options; } /** * Get Common settings. * * @return array. */ public static function get_common_settings() { $options = array(); $common_default = apply_filters( 'cartflows_common_settings_default', array( 'disallow_indexing' => 'disable', 'global_checkout' => '', 'default_page_builder' => 'elementor', ) ); $common = self::get_admin_settings_option( '_cartflows_common', false, false ); $common = wp_parse_args( $common, $common_default ); foreach ( $common as $key => $data ) { $options[ '_cartflows_common[' . $key . ']' ] = $data; } return $options; } /** * Get admin settings. * * @param string $key key. * @param bool $default key. * @param bool $network_override key. * * @return array. */ public static function get_admin_settings_option( $key, $default = false, $network_override = false ) { // Get the site-wide option if we're in the network admin. if ( $network_override && is_multisite() ) { $value = get_site_option( $key, $default ); } else { $value = get_option( $key, $default ); } return $value; } /** * Get Common settings. * * @return array. */ public static function get_permalink_settings() { $options = array(); $permalink_default = apply_filters( 'cartflows_permalink_settings_default', array( 'permalink' => CARTFLOWS_STEP_POST_TYPE, 'permalink_flow_base' => CARTFLOWS_FLOW_POST_TYPE, 'permalink_structure' => '', ) ); $permalink_data = self::get_admin_settings_option( '_cartflows_permalink', false, false ); $permalink_data = wp_parse_args( $permalink_data, $permalink_default ); foreach ( $permalink_data as $key => $data ) { $options[ '_cartflows_permalink[' . $key . ']' ] = $data; } return $options; } /** * Get Common settings. * * @return array. */ public static function get_facebook_settings() { $options = array(); $facebook_default = array( 'facebook_pixel_id' => '', 'facebook_pixel_add_to_cart' => 'enable', 'facebook_pixel_initiate_checkout' => 'enable', 'facebook_pixel_add_payment_info' => 'enable', 'facebook_pixel_purchase_complete' => 'enable', 'facebook_pixel_tracking' => 'disable', 'facebook_pixel_tracking_for_site' => 'disable', ); $facebook = self::get_admin_settings_option( '_cartflows_facebook', false, false ); $facebook = wp_parse_args( $facebook, $facebook_default ); $facebook = apply_filters( 'cartflows_facebook_settings_default', $facebook ); foreach ( $facebook as $key => $data ) { $options[ '_cartflows_facebook[' . $key . ']' ] = $data; } return $options; } /** * Get Common settings. * * @return array. */ public static function get_google_analytics_settings() { $options = array(); $google_analytics_settings_default = apply_filters( 'cartflows_google_analytics_settings_default', array( 'enable_google_analytics' => 'disable', 'enable_google_analytics_for_site' => 'disable', 'google_analytics_id' => '', 'enable_begin_checkout' => 'disable', 'enable_add_to_cart' => 'disable', 'enable_add_payment_info' => 'disable', 'enable_purchase_event' => 'disable', ) ); $google_analytics_settings_data = self::get_admin_settings_option( '_cartflows_google_analytics', false, true ); $google_analytics_settings_data = wp_parse_args( $google_analytics_settings_data, $google_analytics_settings_default ); foreach ( $google_analytics_settings_data as $key => $data ) { $options[ '_cartflows_google_analytics[' . $key . ']' ] = $data; } return $options; } /** * Checkout Selection Field * * @return string */ public static function flow_checkout_selection_field() { $checkout_steps = get_posts( array( 'posts_per_page' => -1, 'post_type' => CARTFLOWS_STEP_POST_TYPE, 'post_status' => 'publish', 'orderby' => 'ID', 'order' => 'ASC', 'tax_query' => array( //phpcs:ignore array( 'taxonomy' => CARTFLOWS_TAXONOMY_STEP_TYPE, 'field' => 'slug', 'terms' => 'checkout', ), ), 'meta_query' => array( //phpcs:ignore array( 'key' => 'wcf-control-step', 'compare' => 'NOT EXISTS', ), ), ) ); $checkout_steps_list = array( array( 'value' => '', 'label' => __( 'Select', 'cartflows' ), ), ); foreach ( $checkout_steps as $index => $step_data ) { array_push( $checkout_steps_list, array( 'value' => $step_data->ID, 'label' => $step_data->post_title . ' ( # ' . $step_data->ID . ' ) ', ) ); } return $checkout_steps_list; } /** * Clear Page Builder Cache */ public static function clear_cache() { // Clear 'Elementor' file cache. if ( class_exists( '\Elementor\Plugin' ) ) { \Elementor\Plugin::$instance->files_manager->clear_cache(); } } /** * Get Flows count. */ public static function get_flows_count() { $flow_posts = get_posts( array( 'posts_per_page' => 4, 'post_type' => CARTFLOWS_FLOW_POST_TYPE, 'post_status' => array( 'publish', 'pending', 'draft', 'future', 'private' ), ) ); return count( $flow_posts ); } /** * Font family field. * * @return array field. */ public static function get_font_family() { $font_family[0] = array( 'value' => '', 'label' => __( 'Default', 'cartflows' ), ); foreach ( \CartFlows_Font_Families::get_system_fonts() as $name => $variants ) { array_push( $font_family, array( 'value' => $name, 'label' => esc_attr( $name ), ) ); } foreach ( \CartFlows_Font_Families::get_google_fonts() as $name => $single_font ) { $variants = wcf_get_prop( $single_font, '0' ); $category = wcf_get_prop( $single_font, '1' ); $font_value = '\'' . esc_attr( $name ) . '\', ' . esc_attr( $category ); array_push( $font_family, array( 'value' => $font_value, 'label' => esc_attr( $name ), ) ); } return $font_family; } /** * Get step default meta. * * @param string $step_type type. * @param int $step_id id. */ public static function get_step_default_meta( $step_type, $step_id ) { $step_default_fields = array(); switch ( $step_type ) { case 'landing': $step_default_fields = wcf()->options->get_landing_fields( $step_id ); break; case 'checkout': $step_default_fields = wcf()->options->get_checkout_fields( $step_id ); break; case 'thankyou': $step_default_fields = wcf()->options->get_thankyou_fields( $step_id ); break; case 'optin': $step_default_fields = wcf()->options->get_optin_fields( $step_id ); break; default: break; } $step_default_fields = apply_filters( 'cartflows_' . $step_type . '_step_default_meta_fields', $step_default_fields, $step_id ); return $step_default_fields; } /** * Get options. */ public static function get_options() { $general_settings = self::get_common_settings(); $permalink_settings = self::get_permalink_settings(); $fb_settings = self::get_facebook_settings(); $ga_settings = self::get_google_analytics_settings(); $options = array_merge( $general_settings, $permalink_settings, $fb_settings, $ga_settings ); $options = apply_filters( 'cartflows_global_data_options', $options ); return $options; } }
Methods
- clear_cache — Clear Page Builder Cache
- flow_checkout_selection_field — Checkout Selection Field
- get_admin_settings_option — Get admin settings.
- get_common_settings — Get Common settings.
- get_facebook_settings — Get Common settings.
- get_flow_meta_options — Get flow meta options.
- get_flows_count — Get Flows count.
- get_font_family — Font family field.
- get_google_analytics_settings — Get Common settings.
- get_options — Get options.
- get_permalink_settings — Get Common settings.
- get_prepared_meta_options — Merge default and saved meta options.
- get_step_default_meta — Get step default meta.
- get_step_meta_options — Get step meta options.