0 LŽU0 @cHĐÜLŽU0P8fq đLŽU ˙˙˙˙  f3ŕ LŽU  0° fOLŽU° Ŕ f˛LŽUŔ PfAŕLŽUPđĐ fQ˛LŽUĐ `fAЋLŽU˙˙˙˙˙˙˙˙ŕ f<ŕ˜LŽUŕ  đ fGĐÜLŽU°Hgq đLŽU ˙˙˙˙ g3ŕ LŽU  gOLŽU € g˛LŽU PgAŕLŽUPP0 gQ˛LŽU0 `gAЋLŽU˙˙˙˙˙˙˙˙@ g<БLŽU@ đ gH0 LŽUđ đgHĐÜLŽUŕXjq đLŽUŔ˙˙˙˙P j3ŕ LŽUP ŕ` j˛LŽU` PjAŕLŽUP°p jQ˛LŽUp `jAЋLŽU˙˙˙˙˙˙˙˙€ j<ŕ˜LŽU€ ` jGĐÜLŽUPphkq đLŽUĐ˙˙˙˙  k3ŕ LŽU  P° k˛LŽU° PkAŕLŽUP Ŕ kQ˛LŽUŔ `kAЋLŽU˙˙˙˙˙˙˙˙Đ k<БLŽUРА kHĐÜLŽUŔŕxlq đLŽU ˙˙˙˙ŕ l3ŕ LŽUŕ Ŕđ l˛LŽUđ PlAŕLŽUP lQ˛LŽU `lAЋLŽU˙˙˙˙˙˙˙˙ l<БLŽU @ lH0 LŽU 0lHĐÜLŽU @ˆoq°ŞLŽU°PouŕLŽUP  oQ˛LŽU `oAЋLŽU˙˙˙˙˙˙˙˙0 o<ŕ˜LŽU0 Đ@ oG0 LŽU@ ŔoHĐÜLŽU°Đ˜rq°ŞLŽU PruŕLŽUP°P rQ˛LŽUP `rAЋLŽU˙˙˙˙˙˙˙˙` r<ŕ˜LŽU` `p rG0 LŽUp PrHĐÜLŽU@`¨uq°ŞLŽU°PuuŕLŽUP@€ uQ˛LŽU€ `uAЋLŽU˙˙˙˙˙˙˙˙ u<ŕ˜LŽU đ  uG0 LŽU  ŕuHĐÜLŽUĐđ¸xq°ŞLŽUŔPxuŕLŽUPа xQ˛LŽU° `xAЋLŽU˙˙˙˙˙˙˙˙Ŕ x<ŕ˜LŽUŔ €Đ xGĐÜLŽUpČyq°ŞLŽUĐPyuŕLŽUPpŕ yQ˛LŽUŕ `yAЋLŽU˙˙˙˙˙˙˙˙đ y<БLŽUđ Đ yH0 LŽUĐ yHĐÜLŽU Ř|q°ŞLŽU P|uŕLŽUP |Q˛LŽU `|AЋLŽU˙˙˙˙˙˙˙˙ |<ŕ˜LŽU ° |G0 LŽU  |HĐÜLŽU°čq°ŞLŽUŔPuŕLŽUP0 Q˛LŽU0 `AЋLŽU˙˙˙˙˙˙˙˙@ <ŕ˜LŽU@ @P G0 LŽUP 0HâLŽU˙˙˙˙@ŕLŽUPp ƒQ 4LŽUp ˙˙˙˙€ ƒ`ULŽU€ ŕ˙˙˙˙ƒ+`nLŽUp°ř„=°ŞLŽUP…u@ZLŽU€€ ‡G˛LŽU `‡Ap€LŽU˙˙˙˙˙˙˙˙  „äLŽU  ˙˙˙˙„pčLŽU˙˙˙˙˙˙˙˙‹>ĐŤLŽUđ˙˙˙˙˙˙˙˙˙˙˙˙Œ>P'^P'^ˆőAˆőAˆ×ăA°'^°'^°őA°őAˆ×ăA(^(^PÁ"B¸YŮA@(^@(^ ^^¸YŮA°ŠöA°ŠöA)^ŞöAŞöAŔ)^@ŞöA@ŞöA€*^ŕŠöAŕŠöA@+^ +^Đ+^x ^0,^`,^  ^Ŕ,^đ,^Č ^P-^€-^đ ^8ÍAh ^ ^8Í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' ] ); } }