Пример #1
0
    /**
     * Change frontent cart item price with Subscription price (cosmetic change)
     * 
     * @access public
     * @param float $price_now
     * @param array $cart_item
     * @param string $cart_item_key
     * @return string
     */
    public function change_cart_item_price_html($price, $cart_item, $cart_item_key)
    {
        $id = !empty($cart_item['variation_id']) ? $cart_item['variation_id'] : $cart_item['product_id'];

        // Check if given item is subscription
        if (Subscriptio_Subscription_Product::is_subscription($id)) {

            // Is subtotal?
            $is_subtotal = current_filter() == 'woocommerce_cart_item_subtotal' ? true : false;

            // Format checkout price html and return
            return Subscriptio_Subscription_Product::get_formatted_subscription_price($id, $is_subtotal, $cart_item['quantity'], $cart_item['data']->price);
        }

        return $price;
    }
    /**
     * Change frontend product price with Subscription price
     * 
     * @access public
     * @param float $price
     * @param object $product
     * @return string
     */
    public function change_product_price($price, $product)
    {
        // Product is subscription?
        if (!is_admin() && self::is_subscription($product->id)) {

            // Variable or grouped product? Then we need to check if all prices are equal or choose cheapest variation and display "From: ..."
            if (in_array($product->product_type, array('variable', 'grouped'))) {
                list($id, $equal) = self::get_cheapest_child_price($product);
                return Subscriptio_Subscription_Product::get_formatted_subscription_price($id, false, 1, null, true, $equal);
            }

            // Simple product or variation
            $id = $product->product_type == 'variation' ? $product->variation_id : $product->id;

            // Double check that particular variation is a subscription
            if ($product->product_type != 'variation' || self::is_subscription($id)) {
                return Subscriptio_Subscription_Product::get_formatted_subscription_price($id, false);
            }
        }

        return $price;
    }