1, 'admin_preview' => 1 ); $saved = get_option( self::OPTION, array() ); $all = wp_parse_args( is_array( $saved ) ? $saved : array(), $defaults ); return isset( $all[ $key ] ) ? $all[ $key ] : null; } /* ---------------------------- Settings ---------------------------- */ public static function menu() { add_submenu_page( 'edit.php?post_type=' . Visigate_Ruleset::CPT, /* translators: %s: plugin name */ sprintf( __( '%s Settings', 'visigate' ), visigate_brand() ), __( 'Settings', 'visigate' ), visigate_capability(), 'visigate-settings', array( __CLASS__, 'render_settings' ) ); } public static function register_settings() { register_setting( 'visigate', self::OPTION, array( 'type' => 'array', 'sanitize_callback' => function ( $in ) { return array( 'auto_nocache' => empty( $in['auto_nocache'] ) ? 0 : 1, 'admin_preview' => empty( $in['admin_preview'] ) ? 0 : 1, ); }, ) ); } public static function render_settings() { ?>

visigate_visible( $set_id_or_rules ) —

visigate_conditions, visigate_check_condition, visigate_condition_options, visigate_rest_search, visigate_is_pro, visigate_hidden_block_output, visigate_hidden_shortcode_output, visigate_brand_name, visigate_user_can_manage, visigate_js_data —

$c ) { if ( 'woo' === $c['group'] && ! class_exists( 'WooCommerce' ) ) { continue; } $conds[ $key ] = array( 'label' => $c['label'], 'group' => $c['group'], 'pro' => (bool) $c['pro'], 'locked' => (bool) $c['locked'], 'lock_label' => (string) $c['lock_label'], 'input' => $c['input'], 'options' => $c['options'], 'source' => $c['source'], 'ops' => $c['ops'], 'default_op' => $c['default_op'], 'days' => (bool) $c['days'], 'no_value' => $c['no_value'], 'key_label' => $c['key_label'] ?? '', 'placeholder' => $c['placeholder'] ?? '', ); } $data = array( 'conditions' => $conds, 'groups' => Visigate_Conditions::groups(), 'options' => Visigate_Conditions::options(), 'sets' => Visigate_Ruleset::all_sets(), 'isPro' => visigate_is_pro(), 'teasers' => class_exists( 'Visigate_Pro_Conditions' ) ? array() : Visigate_Conditions::teasers(), 'upgradeUrl' => esc_url_raw( (string) apply_filters( 'visigate_upgrade_url', 'https://persjay.com/plugins/visigate/#pricing' ) ), 'newSetUrl' => admin_url( 'post-new.php?post_type=' . Visigate_Ruleset::CPT ), 'canManage' => current_user_can( visigate_capability() ), 'brand' => visigate_brand(), ); return apply_filters( 'visigate_js_data', $data ); } private static function enqueue_builder() { wp_enqueue_style( 'visigate-builder', VISIGATE_URL . 'assets/css/builder.css', array( 'wp-components' ), VISIGATE_VERSION ); wp_enqueue_script( 'visigate-builder', VISIGATE_URL . 'assets/js/builder.js', array( 'wp-element', 'wp-components', 'wp-i18n', 'wp-api-fetch', 'wp-hooks' ), VISIGATE_VERSION, true ); wp_set_script_translations( 'visigate-builder', 'visigate' ); wp_add_inline_script( 'visigate-builder', 'window.VisigateData = ' . wp_json_encode( self::js_data() ) . ';', 'before' ); } public static function enqueue_admin( $hook ) { $screen = get_current_screen(); if ( ! $screen || Visigate_Ruleset::CPT !== $screen->post_type || ! in_array( $hook, array( 'post.php', 'post-new.php' ), true ) ) { return; } self::enqueue_builder(); wp_enqueue_script( 'visigate-admin', VISIGATE_URL . 'assets/js/admin.js', array( 'visigate-builder' ), VISIGATE_VERSION, true ); wp_set_script_translations( 'visigate-admin', 'visigate' ); } public static function enqueue_editor() { self::enqueue_builder(); wp_enqueue_script( 'visigate-editor', VISIGATE_URL . 'assets/js/editor.js', array( 'visigate-builder', 'wp-hooks', 'wp-compose', 'wp-block-editor', 'wp-blocks', 'wp-i18n' ), VISIGATE_VERSION, true ); wp_set_script_translations( 'visigate-editor', 'visigate' ); } }