示例#1
0
function eStore_handle_item_addition_to_cart($prod_data_array)
{
    $output = "";
    $wp_eStore_config = WP_eStore_Config::getInstance();
    //Need to drop cookie?
    unset($_SESSION['eStore_last_action_msg']);
    unset($_SESSION['eStore_last_action_msg_2']);
    unset($_SESSION['eStore_last_action_msg_3']);
    if (isset($_SESSION['eStore_cart'])) {
        //Load data from standard cart items
        $estore_cart = wp_eStore_load_eStore_cart_class();
    } else {
        isset($_SESSION['eStore_cart_class']) ? $estore_cart = unserialize($_SESSION['eStore_cart_class']) : ($estore_cart = new WP_eStore_Cart());
    }
    $product_id = $prod_data_array['item_number'];
    $add_qty = $prod_data_array['add_qty'];
    if ($add_qty < 1) {
        $add_qty = 1;
        $prod_data_array['add_qty'] = 1;
    }
    eStore_general_debug("Checking if item already exists in cart", true);
    $existing_item = $estore_cart->GetItemIfInCart($prod_data_array);
    if ($existing_item !== "-1") {
        //Found an item
        eStore_general_debug("This item already exists in the cart. Updating item ...", true);
        if ($wp_eStore_config->getValue('eStore_do_not_show_qty_in_cart')) {
            $output = '<p class="eStore_error_message">' . ESTORE_ITEM_ALREADY_EXISTS . '</p>';
            eStore_ajax_send_error_response($output);
        }
        $new_qty = $existing_item->quantity + $add_qty;
        if (!is_quantity_availabe($product_id, $new_qty)) {
            //Check if the requested qty is available
            eStore_general_debug("Requested quantity is not available! Product ID: " . $product_id . " Requested qty: " . $new_qty, false);
            if (isset($_SESSION['eStore_last_action_msg'])) {
                $output = $_SESSION['eStore_last_action_msg'];
            }
            if (isset($_SESSION['eStore_last_action_msg_2'])) {
                $output = $_SESSION['eStore_last_action_msg_2'];
            }
            eStore_ajax_send_error_response($output);
        }
        //Update the quantity of this item
        $estore_cart->UpdateItemQty($existing_item, $prod_data_array['add_qty']);
    } else {
        //New item
        eStore_general_debug("Adding a brand new item to the cart", true);
        if (!is_quantity_availabe($product_id, $add_qty)) {
            //Check if the requested qty is available
            eStore_general_debug("Requested quantity is not available! Product ID: " . $product_id . " Requested qty: " . $add_qty, false);
            if (isset($_SESSION['eStore_last_action_msg'])) {
                $output = $_SESSION['eStore_last_action_msg'];
            }
            if (isset($_SESSION['eStore_last_action_msg_2'])) {
                $output = $_SESSION['eStore_last_action_msg_2'];
            }
            eStore_ajax_send_error_response($output);
        }
        if (isset($prod_data_array['custom_price'])) {
            //Check if it is a custom price amount
            if ($prod_data_array['custom_price'] < $prod_data_array['price']) {
                eStore_general_debug("Custom price value is less than the minimum amount!", false);
                $output = '<p class="eStore_error_message">' . WP_ESTORE_MINIMUM_PRICE_YOU_CAN_ENTER . WP_ESTORE_CURRENCY_SYMBOL . $prod_data_array['price'] . '</p>';
                eStore_ajax_send_error_response($output);
            }
            $prod_data_array['price'] = $prod_data_array['custom_price'];
        }
        //Add the item
        $estore_cart->AddNewItemFromDataArray($prod_data_array);
    }
    $_SESSION['eStore_cart_class'] = serialize($estore_cart);
    //$db_data_cart = $estore_cart->print_eStore_cart_details();
    //eStore_general_debug("Cart details: ".$db_data_cart,true);
    //Load to the legacy cart session
    wp_eStore_load_cart_class_to_session($estore_cart);
    $output = eStore_shopping_cart_multiple_gateway();
    return $output;
}
function wp_eStore_load_eStore_cart_class()
{
    $eStore_cart = new WP_eStore_Cart();
    $eStore_items = wp_eStore_load_items_to_eStore_item_class();
    $eStore_cart->AddItems($eStore_items);
    $shipping = round($_SESSION['eStore_cart_postage_cost'], 2);
    $eStore_cart->SetCartShipping($shipping);
    if (get_option('eStore_enable_tax') != '') {
        $eStore_cart->SetCartTaxRate(get_option('eStore_global_tax_rate'));
    }
    $return_url = get_option('cart_return_from_paypal_url');
    $eStore_currency = get_option('cart_payment_currency');
    $eStore_cart->SetCartCurrency($eStore_currency);
    $eStore_cart->SetCartReturnUrl($return_url);
    $custom_field_val = eStore_get_custom_field_value();
    $eStore_cart->SetCustomData($custom_field_val);
    //($_SESSION['eStore_custom_values']);
    if (isset($_SESSION['discount_applied_once'])) {
        $eStore_cart->SetDiscountAppliedFlag($_SESSION['discount_applied_once']);
    }
    if (isset($_SESSION['auto_discount_applied_once'])) {
        $eStore_cart->SetAutoDiscountAppliedFlag($_SESSION['auto_discount_applied_once']);
    }
    return $eStore_cart;
}