'amazon.ca', 'CN' => 'amazon.cn', 'DE' => 'amazon.de', 'ES' => 'amazon.es', 'FR' => 'amazon.fr', //'IN' => '', 'IT' => 'amazon.it', 'JP' => 'amazon.co.jp', 'UK' => 'amazon.co.uk', 'US' => 'amazon.com' ); public function __construct() { parent::__construct( 'amazon_wishlist_widget', //id 'Amazon Wishlist Widget', //title array( 'description' => 'Just an Amazon Wishlist Widget' ) ); add_action('wp_enqueue_scripts', array($this, 'wp_enqueue_scripts')); } //Sidebar public function widget( $args, $instance ) { $multipage_start = 0; $multipage_count = 10; $wishlist = array(); $title = apply_filters( 'widget_body', $instance['title'] ); $tracking_id = apply_filters( 'widget_body', $instance['tracking'] ); $wishlist_id = apply_filters( 'widget_body', $instance['wishlist'] ); $locale = apply_filters( 'widget_body', $instance['locale'] ); $last_modified = (int) get_option( '_plugin_amazon_wishlist_widget_time_' . $wishlist_id ); if (time() - $last_modified > 60 * 5) { //every 5min do { $json = $this->get_wishlist( $wishlist_id, $locale, $multipage_start, $multipage_count ); if (empty($json->results)) break; $wishlist = array_merge( $wishlist, $json->results ); $multipage_start += $multipage_count; } while ( $json->NumRecords > count($wishlist) ); update_option( '_plugin_amazon_wishlist_widget_data_' . $wishlist_id, $wishlist ); update_option( '_plugin_amazon_wishlist_widget_time_' . $wishlist_id, time() ); } else { $wishlist = get_option( '_plugin_amazon_wishlist_widget_data_' . $wishlist_id ); } echo $args['before_widget']; if ($title) { ?>

locale[$locale].'/widgets/q'; $query .= '?Operation=GetResults'; $query .= '&ListId='.$list_id; $query .= '&multipageStart='.$multipage_start; $query .= '&InstanceId=0'; $query .= '&multipageCount='.$multipage_count; $query .= '&Sort=DateAdded'; $query .= '&TemplateId=8004'; $query .= '&ServiceVersion=20070822'; $query .= '&MarketPlace='.$locale; $jsonp = @file_get_contents( $query ); if (! $jsonp) return false; if ( preg_match( '|^[\s\w]+\((.+)\)|', $jsonp, $matches ) ) { $json = $matches[1]; $json = preg_replace( '/([{,]+)(\s*)([^"]\w+?)\s*:/','$1"$3":', $json ); return json_decode( $json ); } return FALSE; } public function wp_enqueue_scripts() { $src = plugins_url( 'style.css', __FILE__ ); wp_enqueue_style( 'amazon_wishlist_widget', $src ); } } add_action( 'widgets_init', function() { register_widget( 'WP_AW_Widget' ); });