/** * 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(); } }
/** * 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(); }