get_widget_instance()->id_base; } public function get_title() { return $this->get_widget_instance()->name; } public function get_categories() { // GamiPress category return [ 'gamipress-elementor' ]; } public function get_icon() { $widget_id = $this->get_widget_instance()->id_base; $icons = array( 'gamipress_achievement_widget' => 'dashicons dashicons-awards', 'gamipress_achievements_widget' => 'dashicons dashicons-awards', 'gamipress_last_achievements_earned_widget' => 'dashicons dashicons-awards', 'gamipress_earnings_widget' => 'dashicons dashicons-gamipress', 'gamipress_logs_widget' => 'dashicons dashicons-editor-ul', 'gamipress_user_points_widget' => 'dashicons dashicons-star-filled', 'gamipress_site_points_widget' => 'dashicons dashicons-star-filled', 'gamipress_points_widget' => 'dashicons dashicons-star-filled', 'gamipress_points_types_widget' => 'dashicons dashicons-star-filled', 'gamipress_rank_widget' => 'dashicons dashicons-rank', 'gamipress_ranks_widget' => 'dashicons dashicons-rank', 'gamipress_user_rank_widget' => 'dashicons dashicons-rank', 'gamipress_email_settings_widget' => 'dashicons dashicons-email', 'gamipress_inline_achievement_widget' => 'dashicons dashicons-awards', 'gamipress_inline_last_achievements_earned_widget' => 'dashicons dashicons-awards', 'gamipress_inline_rank_widget' => 'dashicons dashicons-rank', 'gamipress_inline_user_rank_widget' => 'dashicons dashicons-rank', 'gamipress_vimeo_widget' => 'dashicons dashicons-gamipress', 'gamipress_youtube_widget' => 'dashicons dashicons-gamipress', ); return isset( $icons[ $widget_id ] ) ? $icons[ $widget_id ] : 'eicon-wordpress'; } public function get_keywords() { return [ 'gamipress', 'widget', 'custom' ]; } public function get_style_depends(): array { return [ 'e-swiper' ]; } public function get_script_depends(): array { return [ 'swiper' ]; } public function is_reload_preview_required() { return true; } public function get_form() { $instance = $this->get_widget_instance(); ob_start(); echo '
'; return ob_get_clean(); } public function get_widget_instance() { if ( is_null( $this->_widget_instance ) ) { global $wp_widget_factory; if ( isset( $wp_widget_factory->widgets[ $this->_widget_name ] ) ) { $this->_widget_instance = $wp_widget_factory->widgets[ $this->_widget_name ]; $this->_widget_instance->_set( 'REPLACE_TO_ID' ); } elseif ( class_exists( $this->_widget_name ) ) { $this->_widget_instance = new $this->_widget_name(); $this->_widget_instance->_set( 'REPLACE_TO_ID' ); } } return $this->_widget_instance; } protected function get_init_settings() { $settings = parent::get_init_settings(); if ( ! empty( $settings['wp'] ) ) { $widget = $this->get_widget_instance(); $instance = $widget->update( $settings['wp'], [] ); $settings['wp'] = apply_filters( 'widget_update_callback', $instance, $settings['wp'], [], $widget ); } return $settings; } protected function register_controls() { $this->add_control( 'wp', [ 'label' => esc_html__( 'Form', 'elementor' ), 'type' => \Elementor\Controls_Manager::WP_WIDGET, 'widget' => $this->get_name(), 'id_base' => $this->get_widget_instance()->id_base, ] ); } protected function render() { $default_widget_args = [ 'widget_id' => $this->get_name(), 'before_widget' => '', 'after_widget' => '', 'before_title' => '