/** * Display widget content */ public function widget($args, $instance) { $cart = Cart::getInstance(); echo $args['before_widget']; if (!empty($instance['title'])) { echo $args['before_title'] . apply_filters('widget_title', $instance['title']) . $args['after_title']; } echo $cart->render('contents'); echo $args['after_widget']; }
/** * Display widget content * * This widget will only be displayed on single product pages. */ public function widget($args, $instance) { if (!is_singular(CGIT_PRODUCT_POST_TYPE)) { return; } $cart = Cart::getInstance(); echo $args['before_widget']; if (!empty($instance['title'])) { echo $args['before_title'] . apply_filters('widget_title', $instance['title']) . $args['after_title']; } echo $cart->render('add'); echo $args['after_widget']; }
<?php /* Plugin Name: Castlegate IT WP Product Cart Plugin URI: http://github.com/castlegateit/cgit-wp-product-cart Description: Simple product cart plugin for WordPress, extending the Product Catalogue plugin. Version: 1.0 Author: Castlegate IT Author URI: http://www.castlegateit.co.uk/ License: MIT */ use Cgit\Products\Cart; define('CGIT_PRODUCT_CART_PLUGIN_FILE', __FILE__); require __DIR__ . '/src/autoload.php'; require __DIR__ . '/activation.php'; /** * Load plugin * * This uses the plugins_loaded action to control the order in which plugins are * loaded. This plugin depends on the Product Catalogue, so must be loaded after * that plugin. */ add_action('plugins_loaded', function () { require __DIR__ . '/functions.php'; // Initialization Cart::getInstance(); }, 20);
<?php use Cgit\Products\Cart; use Cgit\Products\Product; $cart = Cart::getInstance(); $contents = $cart->contents(); if (count($contents) == 0) { include 'empty.php'; return; } // Initial values $products = []; $total = 0; $discount = 0; foreach ($contents as $item) { $product = new Product($item['product']); // Product information $output = ['id' => $product->ID, 'name' => $product->post_title, 'url' => get_permalink($product->ID), 'quantity' => $item['quantity'], 'price' => $product->product_price * $item['quantity'], 'original' => $product->product_price_original * $item['quantity']]; // Increment total price and discount $total += $output['price']; $discount += $output['original'] - $output['price']; // Variant information if ($item['variant'] !== false) { $variant = $product->product_variants[$item['variant']]; $output['variant'] = $item['variant']; $output['name'] .= ' (' . $variant['variant_name'] . ')'; } // Append to list of products in cart $products[] = $output; } usort($products, function ($a, $b) {