' . __( 'Add-ons', 'a3-lazy-load' ) .'', 'manage_options', 'a3-lazy-load-addons', array( $this, 'output' ) ); } public function load_addons_page_scripts() { wp_enqueue_style( 'a3-lazy-load-addons-style', A3_LAZY_LOAD_CSS_URL . '/a3.lazyload.addons.admin.css' ); if ( is_rtl() ) { wp_enqueue_style( 'a3-lazy-load-addons-style-rtl', A3_LAZY_LOAD_CSS_URL . '/a3.lazyload.addons.admin.rtl.css' ); } } public function output() { ?>
'a3 LazyLoad Addons Page' ) ); if ( ! is_wp_error( $addons_json ) ) { $addons = json_decode( wp_remote_retrieve_body( $addons_json ), true ); if ( $addons ) { set_transient( 'a3_lazyload_addons_data', $addons, 60*60*24 ); // 1 day } } else { $addons_json = wp_remote_get( 'https://s3.amazonaws.com/a3lazyload/lazyload-addons.json', array( 'user-agent' => 'a3 LazyLoad Addons Page' ) ); if ( ! is_wp_error( $addons_json ) ) { $addons = json_decode( wp_remote_retrieve_body( $addons_json ), true ); if ( $addons ) { set_transient( 'a3_lazyload_addons_data', $addons, 60*60*24 ); // 1 day } } } } /** * Example about addon data * * $addon = array( * 'url' => 'http://a3rev.com/shop/a3-lazyloads-extra/', * 'title' => __( 'Lazyload Extra', 'a3-lazy-load' ), * 'header_bg' => '#9378d9', * 'title_color' => '#fff', * 'title_bg' => '#000', * 'image' => 'https://s3.amazonaws.com/a3_plugins/a3LazyLoadAddon/a3-Lazy-Load-Extra-Addon/plugin.png', * 'desc' => __( 'Support for lazy load video, audio, iframe.', 'a3-lazy-load' ), * 'php_class_check' => 'A3_Lazy_Load_Extra_Addon', * 'folder_name' => 'a3-lazyload-extra-addon', * 'is_free' => false * ); */ $third_party_addons = apply_filters( 'a3_lazyload_third_party_addons', array() ); $all_addons = array_merge( $addons, $third_party_addons ); $all_addons = array_merge( $all_addons, $addons ); if ( is_array( $all_addons ) && count( $all_addons ) > 0 ) : foreach ( $all_addons as $id => $addon ) : $had_plugin = false; $is_installed = false; $addon = (object) $addon; if ( class_exists( $addon->php_class_check ) ) { $is_installed = true; } else { $activate_plugin_able = get_plugins('/' . $addon->folder_name ); if ( ! empty( $activate_plugin_able ) && count( $activate_plugin_able ) == 1 ) { $had_plugin = true; $key = array_keys( $activate_plugin_able ); $key = array_shift( $key ); //Use the first plugin regardless of the name, Could have issues for multiple-plugins in one directory if they share different version numbers $plugin_slug = $addon->folder_name.'/'.$key; $activate_url = add_query_arg( array( 'action' => 'activate', 'plugin' => $plugin_slug, ), self_admin_url( 'plugins.php' ) ); } } $header_style = ''; if ( ! empty( $addon->image ) ) : $header_style .= 'background-image: url( ' . esc_url( $addon->image ) . ');'; endif; if ( ! empty( $addon->header_bg ) ) : $header_style .= 'background-color: ' . $addon->header_bg . ';'; endif; $title_style = ''; if ( ! empty( $addon->title_color ) ) : $title_style .= 'color: ' . $addon->title_color . ';'; endif; if ( ! empty( $addon->title_bg ) ) : $title_style .= 'background-color: ' . $addon->title_bg . ';'; endif; ?>