"button_icon";a:1:{i:0;s:19:"||divi||400";}s:9:"fullwidth";a:1:{i:0;s:3:"off";}s:14:"social_network";a:4:{i:0;s:8:"facebook";i:1;s:7:"twitter";i:2;s:8:"linkedin";i:3;s:9:"instagram";}}}s:0:"";a:2:{s:29:"_et_dynamic_cached_shortcodes";a:9:{i:0;s:13:"et_pb_section";i:1;s:9:"et_pb_row";i:2;s:12:"et_pb_column";i:3;s:12:"et_pb_button";i:4;s:10:"et_pb_menu";i:5;s:10:"et_pb_text";i:6;s:11:"et_pb_image";i:7;s:25:"et_pb_social_media_follow";i:8;s:33:"et_pb_social_media_follow_network";}s:29:"_et_dynamic_cached_attributes";a:2:{s:11:"button_icon";a:1:{i:0;s:19:"||divi||400";}s:14:"social_network";a:4:{i:0;s:8:"facebook";i:1;s:7:"twitter";i:2;s:8:"linkedin";i:3;s:9:"instagram";}}}}}AjA A`APAHAjAhA`APAAjAA`APAФAjAA`APA\}U P@\}U `@\}U p@Z\}UC\}UI\}U\}U+\}U R\}U\}UpG!\}UpH!\}UpH0\}Upd\}U`H0\}UP 0\}U@0\}U0 H0\}U@0\}UP\}UP@H \}U81}UX\}UP`P\}U` +n\}U]TpXp*\}Udx\}UPPpi^\}UpPN\}Up`B=\}U <$\}U>\}U*\}UP{\}U+n\}U"ppN\}UPPBN\}Up`B=\}U<$\}U>\}UPI\}U%\}U.\}U`=x\}UPPu\}UI\}U\}U4\}U`+\}U`P\}UP\}UP+\}Uqz\}UPtN\}UP`Bc\}U<m\}U\}U*\}Uqz\}UPtN\}U``Bc\}U0<m\}U0\}U+n\}U3TpN\}UPBN\}Up`B=\}U<\}U*M\}UpD=\}U<-\}U1}Up$\}U>†A†A WAAюAAA(AXAAxAPAAAA>AAX?A8~A`~AVAVA3AVAVA]T}UA8A8AA8A8AAVAVA3AhʇASAQ|}U̎A(MA輖A輖A return $data['pro_widgets']; } /** * Get templates data. * * Retrieve the templates data from a remote server. * * @since 2.0.0 * @access public * @static * * @param bool $force_update Optional. Whether to force the data update or * not. Default is false. * * @return array The templates data. */ public static function get_library_data( $force_update = false ) { self::get_info_data( $force_update ); $library_data = get_option( self::LIBRARY_OPTION_KEY ); if ( empty( $library_data ) ) { return []; } return $library_data; } /** * Get feed data. * * Retrieve the feed info data from remote elementor server. * * @since 1.9.0 * @access public * @static * * @param bool $force_update Optional. Whether to force the data update or * not. Default is false. * * @return array Feed data. */ public static function get_feed_data( $force_update = false ) { self::get_info_data( $force_update ); $feed = get_option( self::FEED_OPTION_KEY ); if ( empty( $feed ) ) { return []; } return $feed; } public static function get_deactivation_data() { $data = self::get_info_data( true, 'deactivated' ); if ( empty( $data['deactivate_data'] ) ) { return false; } return $data['deactivate_data']; } public static function get_uninstalled_data() { $data = self::get_info_data( true, 'uninstalled' ); if ( empty( $data['uninstall_data'] ) ) { return false; } return $data['uninstall_data']; } /** * Get template content. * * Retrieve the templates content received from a remote server. * * @since 1.0.0 * @access public * @static * * @param int $template_id The template ID. * * @return object|\WP_Error The template content. */ public static function get_template_content( $template_id ) { /** @var Library $library */ $library = Plugin::$instance->common->get_component( 'connect' )->get_app( 'library' ); return $library->get_template_content( $template_id ); } /** * Send Feedback. * * Fires a request to Elementor server with the feedback data. * * @since 1.0.0 * @access public * @static * * @param string $feedback_key Feedback key. * @param string $feedback_text Feedback text. * * @return array The response of the request. */ public static function send_feedback( $feedback_key, $feedback_text ) { return wp_remote_post( self::$api_feedback_url, [ 'timeout' => 30, 'body' => [ 'api_version' => ELEMENTOR_VERSION, 'site_lang' => get_bloginfo( 'language' ), 'feedback_key' => $feedback_key, 'feedback' => $feedback_text, ], ] ); } /** * Ajax reset API data. * * Reset Elementor library API data using an ajax call. * * @since 1.0.0 * @access public * @static */ public static function ajax_reset_api_data() { check_ajax_referer( 'elementor_reset_library', '_nonce' ); if ( ! current_user_can( 'manage_options' ) ) { wp_send_json_error( 'Permission denied' ); } self::get_info_data( true ); wp_send_json_success(); } /** * Init. * * Initialize Elementor API. * * @since 1.0.0 * @access public * @static */ public static function init() { add_action( 'wp_ajax_elementor_reset_library', [ __CLASS__, 'ajax_reset_api_data' ] ); } }