/**
 * Adds item to the cart via AJAX.
 *
 * @since 1.0
 * @return void
 */
function edd_ajax_add_to_cart()
{
    if (isset($_POST['download_id']) && check_ajax_referer('edd_ajax_nonce', 'nonce')) {
        global $post;
        $to_add = array();
        if (isset($_POST['price_ids']) && is_array($_POST['price_ids'])) {
            foreach ($_POST['price_ids'] as $price) {
                $to_add[] = array('price_id' => $price);
            }
        }
        foreach ($to_add as $options) {
            if (!edd_item_in_cart($_POST['download_id'], $options)) {
                if ($_POST['download_id'] == $options['price_id']) {
                    $options = array();
                }
                $key = edd_add_to_cart($_POST['download_id'], $options);
                $item = array('id' => $_POST['download_id'], 'options' => $options);
                $item = apply_filters('edd_ajax_pre_cart_item_template', $item);
                $cart_item = edd_get_cart_item_template($key, $item, true);
                echo $cart_item;
            } else {
                echo 'incart';
            }
        }
    }
    edd_die();
}
/**
 * Shopping Cart
 *
 * @access      public
 * @since       1.0 
 * @return      string
*/
function edd_shopping_cart($echo = false)
{
    global $edd_options;
    ob_start();
    ?>
	
	<?php 
    do_action('edd_before_cart');
    ?>
	<ul class="edd-cart">
	<?php 
    $cart_items = edd_get_cart_contents();
    if ($cart_items) {
        foreach ($cart_items as $key => $item) {
            echo edd_get_cart_item_template($key, $item, false);
        }
        echo '<li class="cart_item edd_checkout"><a href="' . get_permalink($edd_options['purchase_page']) . '">' . __('Checkout', 'edd') . '</a></li>';
    } else {
        echo '<li class="cart_item empty">' . edd_empty_cart_message() . '</li>';
        echo '<li class="cart_item edd_checkout" style="display:none;"><a href="' . get_permalink($edd_options['purchase_page']) . '">' . __('Checkout', 'edd') . '</a></li>';
    }
    ?>
	</ul>
	<?php 
    do_action('edd_after_cart');
    ?>
	<?php 
    if ($echo) {
        echo ob_get_clean();
    } else {
        return ob_get_clean();
    }
}
Пример #3
0
/**
 * Adds item to the cart from the wish list via AJAX. Based off edd_ajax_add_to_cart()
 *
 * @since 1.0
 * @return void
 */
function edd_ajax_add_to_cart_from_wish_list()
{
    if (isset($_POST['download_id'])) {
        global $post;
        $to_add = array();
        if (isset($_POST['price_ids']) && is_array($_POST['price_ids'])) {
            foreach ($_POST['price_ids'] as $price) {
                $to_add[] = array('price_id' => $price);
            }
        }
        foreach ($to_add as $options) {
            if ($_POST['download_id'] == $options['price_id']) {
                $options = array();
            }
            parse_str($_POST['post_data'], $post_data);
            if (isset($options['price_id']) && isset($post_data['edd_download_quantity_' . $options['price_id']])) {
                $options['quantity'] = absint($post_data['edd_download_quantity_' . $options['price_id']]);
            } else {
                $options['quantity'] = isset($post_data['edd_download_quantity']) ? absint($post_data['edd_download_quantity']) : 1;
            }
            // call EDD's edd_add_to_cart function
            $key = edd_add_to_cart($_POST['download_id'], $options);
            $item = array('id' => $_POST['download_id'], 'options' => $options);
            $item = apply_filters('edd_wl_ajax_pre_cart_item_template', $item);
            $return = array('add_to_cart' => 'Added to Cart', 'subtotal' => html_entity_decode(edd_currency_filter(edd_format_amount(edd_get_cart_subtotal())), ENT_COMPAT, 'UTF-8'), 'cart_item' => html_entity_decode(edd_get_cart_item_template($key, $item, true), ENT_COMPAT, 'UTF-8'));
            echo json_encode($return);
        }
    }
    edd_die();
}
/**
 * AJAX Add To Cart
 *
 * Adds item to the cart.
 *
 * @access      private
 * @since       1.0
 * @return      string
*/
function edd_ajax_add_to_cart()
{
    if (isset($_POST['download_id']) && check_ajax_referer('edd_ajax_nonce', 'nonce')) {
        global $post;
        if (!edd_item_in_cart($_POST['download_id'])) {
            $options = is_numeric($_POST['price_id']) ? array('price_id' => $_POST['price_id']) : array();
            $key = edd_add_to_cart($_POST['download_id'], $options);
            $item = array('id' => $_POST['download_id'], 'options' => $options);
            $cart_item = edd_get_cart_item_template($key, $item, true);
            echo $cart_item;
        } else {
            echo 'incart';
        }
    }
    die;
}
/**
 * Renders the Shopping Cart
 *
 * @since 1.0
 * @return string Fully formatted cart
*/
function edd_shopping_cart($echo = false)
{
    global $edd_options;
    ob_start();
    do_action('edd_before_cart');
    $display = 'style="display:none;"';
    $cart_quantity = edd_get_cart_quantity();
    if ($cart_quantity > 0) {
        $display = "";
    }
    echo "<p class='edd-cart-number-of-items' {$display}>" . __('Number of items in cart', 'edd') . ': <span class="edd-cart-quantity">' . $cart_quantity . '<span></p>';
    ?>

	<ul class="edd-cart">
	<!--dynamic-cached-content-->
	<?php 
    $cart_items = edd_get_cart_contents();
    if ($cart_items) {
        foreach ($cart_items as $key => $item) {
            echo edd_get_cart_item_template($key, $item, false);
        }
        edd_get_template_part('widget', 'cart-checkout');
    } else {
        edd_get_template_part('widget', 'cart-empty');
    }
    ?>
	<!--/dynamic-cached-content-->
	</ul>
	<?php 
    do_action('edd_after_cart');
    if ($echo) {
        echo ob_get_clean();
    } else {
        return ob_get_clean();
    }
}
/**
 * Adds item to the cart via AJAX.
 *
 * @since 1.0
 * @return void
 */
function edd_ajax_add_to_cart()
{
    if (isset($_POST['download_id'])) {
        $to_add = array();
        if (isset($_POST['price_ids']) && is_array($_POST['price_ids'])) {
            foreach ($_POST['price_ids'] as $price) {
                $to_add[] = array('price_id' => $price);
            }
        }
        $items = '';
        foreach ($to_add as $options) {
            if ($_POST['download_id'] == $options['price_id']) {
                $options = array();
            }
            parse_str($_POST['post_data'], $post_data);
            if (isset($options['price_id']) && isset($post_data['edd_download_quantity_' . $options['price_id']])) {
                $options['quantity'] = absint($post_data['edd_download_quantity_' . $options['price_id']]);
            } else {
                $options['quantity'] = isset($post_data['edd_download_quantity']) ? absint($post_data['edd_download_quantity']) : 1;
            }
            $key = edd_add_to_cart($_POST['download_id'], $options);
            $item = array('id' => $_POST['download_id'], 'options' => $options);
            $item = apply_filters('edd_ajax_pre_cart_item_template', $item);
            $items .= html_entity_decode(edd_get_cart_item_template($key, $item, true), ENT_COMPAT, 'UTF-8');
        }
        $return = array('subtotal' => html_entity_decode(edd_currency_filter(edd_format_amount(edd_get_cart_subtotal())), ENT_COMPAT, 'UTF-8'), 'total' => html_entity_decode(edd_currency_filter(edd_format_amount(edd_get_cart_total())), ENT_COMPAT, 'UTF-8'), 'cart_item' => $items, 'cart_quantity' => html_entity_decode(edd_get_cart_quantity()));
        if (edd_use_taxes()) {
            $cart_tax = (double) edd_get_cart_tax();
            $return['tax'] = html_entity_decode(edd_currency_filter(edd_format_amount($cart_tax)), ENT_COMPAT, 'UTF-8');
        }
        echo json_encode($return);
    }
    edd_die();
}
?>
: <span class="edd-cart-quantity"><?php 
echo $cart_quantity;
?>
</span></p>
<ul class="edd-cart">
<?php 
if ($cart_items) {
    ?>

	<?php 
    foreach ($cart_items as $key => $item) {
        ?>

		<?php 
        echo edd_get_cart_item_template($key, $item, false);
        ?>

	<?php 
    }
    ?>

	<?php 
    edd_get_template_part('widget', 'cart-checkout');
    ?>

<?php 
} else {
    ?>

	<?php 
/**
 * Adds item to the cart via AJAX.
 *
 * @since 1.0
 * @return void
 */
function edd_ajax_add_to_cart()
{
    if (isset($_POST['download_id'])) {
        $to_add = array();
        if (isset($_POST['price_ids']) && is_array($_POST['price_ids'])) {
            foreach ($_POST['price_ids'] as $price) {
                $to_add[] = array('price_id' => $price);
            }
        }
        $items = '';
        foreach ($to_add as $options) {
            if ($_POST['download_id'] == $options['price_id']) {
                $options = array();
            }
            $key = edd_add_to_cart($_POST['download_id'], $options);
            $item = array('id' => $_POST['download_id'], 'options' => $options);
            $item = apply_filters('edd_ajax_pre_cart_item_template', $item);
            $items .= html_entity_decode(edd_get_cart_item_template($key, $item, true), ENT_COMPAT, 'UTF-8');
        }
        $return = array('subtotal' => html_entity_decode(edd_currency_filter(edd_format_amount(edd_get_cart_subtotal())), ENT_COMPAT, 'UTF-8'), 'total' => html_entity_decode(edd_currency_filter(edd_format_amount(edd_get_cart_total())), ENT_COMPAT, 'UTF-8'), 'cart_item' => $items);
        echo json_encode($return);
    }
    edd_die();
}