get_setting( array( 'slider' ) ); if ( empty( $slider_data ) || empty( $slider_data['path'] ) ) { return; } $this->data = $slider_data; if ( ! $this->get_slides() ) { return; } } /** * Enqueue slider assets * * @return void */ public function slider_assets() { wp_enqueue_script( 'swiper-jquery', jdi()->url( 'assets/js/swiper.min.js' ), array( 'jquery' ), '2.0.0', true ); } /** * Render slider * * @return string|void */ public function render( $echo = true ) { $slides = $this->get_slides(); if ( empty( $slides ) ) { return; } $format = '

%2$s

%3$s
'; $result = ''; foreach ( $slides as $slide ) { $url = ! empty( $slide['image'] ) ? esc_url( $slide['image'] ) : false; $title = ! empty( $slide['title'] ) ? wp_kses_post( $slide['title'] ) : false; $desc = ! empty( $slide['desc'] ) ? wp_kses_post( $slide['desc'] ) : false; $result .= sprintf( $format, $url, $title, $desc ); } $result = sprintf( '
%1$s
%2$s
', $result, '
' ); if ( $echo ) { echo $result; } else { return $result; } } /** * Retrieve slides list * * @return array|bool false */ public function get_slides() { if ( ! empty( $this->slides ) ) { return $this->slides; } $slides = get_transient( 'jet_data_importer_slides' ); if ( ! $slides ) { $response = wp_remote_get( $this->data['path'], array( 'timeout' => 30 ) ); if ( ! $response || is_wp_error( $response ) ) { return false; } $body = wp_remote_retrieve_body( $response ); if ( ! $body || is_wp_error( $body ) ) { return false; } $slides = json_decode( $body, true ); if ( ! $slides ) { return false; } } $this->slides = $slides; set_transient( 'jet_data_importer_slides', $this->slides, DAY_IN_SECONDS ); return $this->slides; } /** * Returns the instance. * * @since 1.0.0 * @return object */ public static function get_instance() { // If the single instance hasn't been set, set it now. if ( null == self::$instance ) { self::$instance = new self; } return self::$instance; } } } /** * Returns instance of Jet_Data_Importer_Slider * * @return object */ function jdi_slider() { return Jet_Data_Importer_Slider::get_instance(); }