function woocommerce_subcategory_thumbnail($category) { // Figure $figure = \Drone\HTML::figure()->class('featured full-width'); // Hyperlink $a = $figure->addNew('a')->attr(Everything::getImageAttrs('a', array('fancybox' => false)))->href(get_term_link($category->slug, 'product_cat')); // Thumbnail $thumbnail_id = get_woocommerce_term_meta($category->term_id, 'thumbnail_id', true); $thumbnail_size = apply_filters('single_product_small_thumbnail_size', 'shop_catalog'); if ($thumbnail_id) { $a->add(wp_get_attachment_image($thumbnail_id, $thumbnail_size)); } elseif (woocommerce_placeholder_img_src()) { $a->add(woocommerce_placeholder_img($thumbnail_size)); } echo $figure->html(); }
/** * Image attributes * * @since 1.0 * * @param string $tag * @param array $atts */ public static function imageAttrs($tag, $atts = array()) { echo Everything::getImageAttrs($tag, $atts, 'html'); }
<?php /** * @package WooCommerce/Templates * @subpackage Everything * @since 1.0 * @version 2.0.14 */ // ----------------------------------------------------------------------------- if (!defined('ABSPATH')) { exit; } // ----------------------------------------------------------------------------- global $post, $woocommerce, $product; ?> <div class="images"><?php if (has_post_thumbnail()) { $image_title = esc_attr(Everything::woocommerceGetThumbnailCaption(get_post_thumbnail_id())); $image_link = wp_get_attachment_url(get_post_thumbnail_id()); $image = get_the_post_thumbnail($post->ID, apply_filters('single_product_large_thumbnail_size', 'auto'), array('title' => $image_title)); echo apply_filters('woocommerce_single_product_image_html', sprintf('<figure class="full-width"><a href="%s" itemprop="image" data-fancybox-title="%s" data-fancybox-group="product-gallery" ' . str_replace('class="', 'class="zoom ', Everything::getImageAttrs('a', array(), 'html')) . '>%s</a></figure>', $image_link, $image_title, $image), $post->ID); } else { echo apply_filters('woocommerce_single_product_image_html', sprintf('<figure class="full-width"><div ' . Everything::getImageAttrs('div', array(), 'html') . '><img src="%s" alt="Placeholder" /></div></figure>', woocommerce_placeholder_img_src()), $post->ID); } do_action('woocommerce_product_thumbnails'); ?> </div>
function widget($args, $instance) { ob_start(); parent::widget($args, $instance); $output = ob_get_clean(); $output = Everything::woocommerceWidgetParseList($output); $output = preg_replace_callback('#' . '<li>' . '<a[^>]*?href="(?P<url>[^"]*)"[^>]*?>\\s*(?P<thumbnail><img[^>]*>)(?P<title>[^<>]*)</a>' . '<div[^>]*class="star-rating"[^>]*><span[^>]*><strong class="rating">(?P<average>[,\\.0-9]+)</strong>[^>]*</span></div>' . '<span class="reviewer">(?P<author>[^<>]*)</span>' . '</li>' . '#i', function ($m) { $html = \Drone\HTML::li(); $html->addNew('figure')->class('alignright fixed')->addNew('a')->attr(Everything::getImageAttrs('a', array('border' => true, 'hover' => '', 'fanbcybox' => false)))->href($m['url'])->title($m['title'])->add($m['thumbnail']); $html->addNew('h3')->addNew('a')->href($m['url'])->title($m['title'])->add($m['title']); $html->add(Everything::getShortcodeOutput('rating', array('rate' => $m['average'] . '/5', 'author' => $m['author']))); return $html->html(); }, $output); echo $output; }
protected function onShortcode($content, $code, \Drone\HTML &$html) { // Columns $columns_int = (int) rtrim($this->so('columns'), '+'); $columns_plus = $this->so('columns') != (string) $columns_int; // Posts $query = new \WP_Query(array('posts_per_page' => $this->so('count', '__empty', -1), 'post_status' => 'publish', 'post_type' => 'portfolio', 'post_parent' => $this->so('id', '__default', get_the_ID()), 'post__not_in' => is_single() ? array(get_the_ID()) : array(), 'orderby' => $this->so('orderby'), 'order' => $this->so('order'), 'paged' => max(get_query_var('page'), get_query_var('paged'), 1))); if (!$query->have_posts()) { return; } // Bricks $bricks = $html->addNew('div')->class('bricks')->data('bricks-columns', $columns_int)->data('bricks-filter', Func::boolToString($this->so('filter'))); while ($query->have_posts()) { $query->the_post(); $div = $bricks->addNew('div'); if ($columns_plus) { $div->addClass('one-plus'); } // Item $item = $div->addNew('article')->id('portfolio-item-' . get_the_ID())->addClass(get_post_class('portfolio-item')); if ($this->so('title') || $this->so('teaser') || $this->so('taxonomy')) { $item->addClass('bordered'); } // Terms if ($this->so('filter')) { $terms = Func::wpPostTermsList(get_the_ID(), 'portfolio-' . $this->so('filter')); if (count($terms) > 0) { $div->data('bricks-terms', json_encode(array_values($terms))); } } // Columns + if ($columns_plus) { $ul = $item->addNew('div')->class('columns')->addNew('ul'); $item_featured = $ul->addNew('li')->class('col-2-3'); $item_desc = $ul->addNew('li')->class('col-1-3'); } else { $item_featured = $item_desc = $item; } // Featured image if (has_post_thumbnail()) { $item_featured->addNew('figure')->class('thumbnail featured full-width')->addNew('a')->attr(\Everything::getImageAttrs('a', array('border' => false, 'hover' => $this->so('image_hover'), 'fancybox' => false)))->href(get_permalink())->add(get_the_post_thumbnail(null, $columns_plus ? 'auto-2' : 'auto')); } // Title if ($this->so('title')) { $item_desc->addNew($columns_int == 1 ? 'h2' : 'h3')->addNew('a')->href(get_permalink())->title(the_title_attribute(array('echo' => false)))->add(get_the_title()); } // Teaser switch ($this->so('teaser')) { case 'excerpt': $item_desc->addNew('p')->add(get_the_excerpt()); break; case 'excerpt_content': if (has_excerpt()) { $item_desc->addNew('p')->add(get_the_excerpt()); break; } case 'content': $GLOBALS['more'] = 0; $item_desc->add(\Drone\Func::wpProcessContent(get_the_content(\Everything::getReadMore()))); break; } //$item_desc->addNew('p')->add(wp_trim_words(has_excerpt() ? get_the_excerpt() : strip_shortcodes($GLOBALS['post']->post_content), $this->so('excerpt_length'), ' […]')); // Taxonomy if ($this->so('taxonomy')) { $item_desc->add(get_the_term_list(get_the_ID(), 'portfolio-' . $this->so('taxonomy'), '<p class="small alt">', ', ', '</p>')); } } wp_reset_postdata(); // Paginate links if ($this->so('pagination') && ($pagination = \Everything::getPaginateLinks('portfolio', $query))) { $html->add($pagination); } }
?> "> <td class="product-remove"> <?php echo apply_filters('woocommerce_cart_item_remove_link', sprintf('<a href="%s" class="remove alt" title="%s"><i class="icon-cancel-circled"></i></a>', esc_url(WC()->cart->get_remove_url($cart_item_key)), __('Remove this item', 'woocommerce')), $cart_item_key); ?> </td> <td class="product-thumbnail"> <?php $thumbnail = apply_filters('woocommerce_cart_item_thumbnail', $_product->get_image('post-thumbnail-mini'), $cart_item, $cart_item_key); if (!$_product->is_visible()) { echo $thumbnail; } else { printf('<figure><a href="%s" ' . Everything::getImageAttrs('a', array('border' => true, 'hover' => '', 'fancybox' => false), 'html') . '>%s</a></figure>', $_product->get_permalink(), $thumbnail); } ?> </td> <td class="product-name"> <?php if (!$_product->is_visible()) { echo apply_filters('woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key); } else { echo apply_filters('woocommerce_cart_item_name', sprintf('<a href="%s">%s</a>', $_product->get_permalink(), $_product->get_title()), $cart_item, $cart_item_key); } echo WC()->cart->get_item_data($cart_item); if ($_product->backorders_require_notification() && $_product->is_on_backorder($cart_item['quantity'])) { echo '<p class="backorder_notification">' . __('Available on backorder', 'woocommerce') . '</p>'; }