Beispiel #1
0
function wc2_register_order_data()
{
    $wc2_order = WC2_DB_Order::get_instance();
    $cart = wc2_get_cart();
    $entry_data = wc2_get_entry();
    if (empty($cart)) {
        wc2_set_log('Session is empty.', 'register_orderdata');
        return false;
    }
    if (empty($entry_data['customer']['name1']) || empty($entry_data['customer']['email']) || empty($entry_data) || empty($cart)) {
        wc2_set_log('Customer data is empty.', 'register_orderdata');
        return false;
    }
    $general_options = wc2_get_option('general');
    $payment = wc2_get_payment($entry_data['order']['payment_method']);
    foreach ($cart as $row) {
        $charges_type = wc2_get_item_charges_type($row['item_id']);
        if (!empty($charges_type)) {
            break;
        }
    }
    $args = array('cart' => $cart, 'entry_data' => $entry_data, 'member_id' => $entry_data['member_id'], 'payment' => $payment, 'charges_type' => $charges_type);
    $order_date = wc2_get_today_datetime_format();
    $order_status = 'new';
    $receipt_status = '';
    $receipted_date = '';
    if ('continue' == $charges_type) {
        $order_modified = $order_date;
    } else {
        $noreceipt_status_table = wc2_get_option('noreceipt_status');
        if (in_array($payment['settlement'], $noreceipt_status_table)) {
            $receipt_status = 'unpaid';
        }
        $order_modified = '';
    }
    $order_status = apply_filters('wc2_filter_register_orderdata_status', $order_status, $args);
    $receipt_status = apply_filters('wc2_filter_register_orderdata_receipt_status', $receipt_status, $args);
    if (!preg_match('/pending|unpaid/', $receipt_status)) {
        $receipted_date = $order_date;
    }
    $order_type = '';
    $order_check = array();
    do_action('wc2_action_register_order_data_pre', $args);
    $data = array();
    $data[ORDER_MEMBER_ID] = isset($entry_data['member_id']) ? $entry_data['member_id'] : '';
    $data[ORDER_EMAIL] = isset($entry_data['customer']['email']) ? $entry_data['customer']['email'] : '';
    $data[ORDER_NAME1] = isset($entry_data['customer']['name1']) ? $entry_data['customer']['name1'] : '';
    $data[ORDER_NAME2] = isset($entry_data['customer']['name2']) ? $entry_data['customer']['name2'] : '';
    $data[ORDER_NAME3] = isset($entry_data['customer']['name3']) ? $entry_data['customer']['name3'] : '';
    $data[ORDER_NAME4] = isset($entry_data['customer']['name4']) ? $entry_data['customer']['name4'] : '';
    $data[ORDER_COUNTRY] = isset($entry_data['customer']['country']) ? $entry_data['customer']['country'] : '';
    $data[ORDER_ZIPCODE] = isset($entry_data['customer']['zipcode']) ? $entry_data['customer']['zipcode'] : '';
    $data[ORDER_PREF] = isset($entry_data['customer']['pref']) ? $entry_data['customer']['pref'] : '';
    $data[ORDER_ADDRESS1] = isset($entry_data['customer']['address1']) ? $entry_data['customer']['address1'] : '';
    $data[ORDER_ADDRESS2] = isset($entry_data['customer']['address2']) ? $entry_data['customer']['address2'] : '';
    $data[ORDER_TEL] = isset($entry_data['customer']['tel']) ? $entry_data['customer']['tel'] : '';
    $data[ORDER_FAX] = isset($entry_data['customer']['fax']) ? $entry_data['customer']['fax'] : '';
    $data[ORDER_NOTE] = isset($entry_data['order']['note']) ? $entry_data['order']['note'] : '';
    $data[ORDER_DELIVERY_METHOD] = isset($entry_data['order']['delivery_method']) ? $entry_data['order']['delivery_method'] : -1;
    $data[ORDER_DELIVERY_NAME] = isset($entry_data['order']['delivery_name']) ? $entry_data['order']['delivery_name'] : '';
    $data[ORDER_DELIVERY_DATE] = isset($entry_data['order']['delivery_date']) ? $entry_data['order']['delivery_date'] : '';
    $data[ORDER_DELIVERY_TIME] = isset($entry_data['order']['delivery_time']) ? $entry_data['order']['delivery_time'] : '';
    $data[ORDER_DELIDUE_DATE] = isset($entry_data['order']['delidue_date']) ? $entry_data['order']['delidue_date'] : '';
    $data[ORDER_PAYMENT_METHOD] = isset($entry_data['order']['payment_method']) ? $entry_data['order']['payment_method'] : -1;
    $data[ORDER_PAYMENT_NAME] = isset($entry_data['order']['payment_name']) ? $entry_data['order']['payment_name'] : '';
    $data[ORDER_CONDITION] = serialize(wc2_get_condition());
    $data[ORDER_ITEM_TOTAL_PRICE] = isset($entry_data['order']['item_total_price']) ? $entry_data['order']['item_total_price'] : 0;
    $data[ORDER_GETPOINT] = isset($entry_data['order']['getpoint']) ? $entry_data['order']['getpoint'] : 0;
    $data[ORDER_USEDPOINT] = isset($entry_data['order']['usedpoint']) ? $entry_data['order']['usedpoint'] : 0;
    $data[ORDER_DISCOUNT] = isset($entry_data['order']['discount']) ? $entry_data['order']['discount'] : 0;
    $data[ORDER_SHIPPING_CHARGE] = isset($entry_data['order']['shipping_charge']) ? $entry_data['order']['shipping_charge'] : 0;
    $data[ORDER_COD_FEE] = isset($entry_data['order']['cod_fee']) ? $entry_data['order']['cod_fee'] : 0;
    $data[ORDER_TAX] = isset($entry_data['order']['tax']) ? $entry_data['order']['tax'] : 0;
    $data[ORDER_DATE] = $order_date;
    $data[ORDER_MODIFIED] = $order_modified;
    $data[ORDER_STATUS] = $order_status;
    $data[RECEIPT_STATUS] = $receipt_status;
    $data[RECEIPTED_DATE] = $receipted_date;
    $data[ORDER_TYPE] = $order_type;
    $data[ORDER_CHECK] = serialize($order_check);
    $cscs_keys = wc2_get_custom_field_keys(WC2_CSCS);
    if (!empty($cscs_keys) && is_array($cscs_keys)) {
        foreach ($cscs_keys as $key) {
            list($pfx, $cscs_key) = explode('_', $key, 2);
            if (array_key_exists(WC2_CUSTOM_CUSTOMER, $entry_data['customer']) and array_key_exists($cscs_key, $entry_data['customer'][WC2_CUSTOM_CUSTOMER])) {
                if (is_array($entry_data['customer'][WC2_CUSTOM_CUSTOMER][$cscs_key])) {
                    $data[WC2_CUSTOM_CUSTOMER][$cscs_key] = serialize($entry_data['customer'][WC2_CUSTOM_CUSTOMER][$cscs_key]);
                } else {
                    $data[WC2_CUSTOM_CUSTOMER][$cscs_key] = $entry_data['customer'][WC2_CUSTOM_CUSTOMER][$cscs_key];
                }
            } else {
                $data[WC2_CUSTOM_CUSTOMER][$cscs_key] = '';
            }
        }
    }
    $csod_keys = wc2_get_custom_field_keys(WC2_CSOD);
    if (!empty($csod_keys) && is_array($csod_keys)) {
        foreach ($csod_keys as $key) {
            list($pfx, $csod_key) = explode('_', $key, 2);
            if (array_key_exists(WC2_CUSTOM_ORDER, $entry_data['order']) and array_key_exists($csod_key, $entry_data['order'][WC2_CUSTOM_ORDER])) {
                if (is_array($entry_data['order'][WC2_CUSTOM_ORDER][$csod_key])) {
                    $data[WC2_CUSTOM_ORDER][$csod_key] = serialize($entry_data['order'][WC2_CUSTOM_ORDER][$csod_key]);
                } else {
                    $data[WC2_CUSTOM_ORDER][$csod_key] = $entry_data['order'][WC2_CUSTOM_ORDER][$csod_key];
                }
            } else {
                $data[WC2_CUSTOM_ORDER][$csod_key] = '';
            }
        }
    }
    $data[ORDER_CART] = array();
    ksort($cart);
    foreach ($cart as $idx => $row) {
        //$data[ORDER_CART][$row_index][ORDER_CART_GROUP_ID] = 0;
        $data[ORDER_CART][$idx][ORDER_CART_ROW_INDEX] = $idx;
        $data[ORDER_CART][$idx][ORDER_CART_POST_ID] = $row['post_id'];
        $data[ORDER_CART][$idx][ORDER_CART_ITEM_ID] = $row['item_id'];
        $data[ORDER_CART][$idx][ORDER_CART_ITEM_CODE] = $row['item_code'];
        $data[ORDER_CART][$idx][ORDER_CART_ITEM_NAME] = $row['item_name'];
        $data[ORDER_CART][$idx][ORDER_CART_SKU_ID] = $row['sku_id'];
        $data[ORDER_CART][$idx][ORDER_CART_SKU_CODE] = $row['sku_code'];
        $data[ORDER_CART][$idx][ORDER_CART_SKU_NAME] = $row['sku_name'];
        $data[ORDER_CART][$idx][ORDER_CART_PRICE] = $row['price'];
        $data[ORDER_CART][$idx][ORDER_CART_CPRICE] = $row['cprice'];
        $data[ORDER_CART][$idx][ORDER_CART_QUANTITY] = $row['quantity'];
        $data[ORDER_CART][$idx][ORDER_CART_UNIT] = $row['unit'];
        $data[ORDER_CART][$idx][ORDER_CART_TAX] = $row['tax'];
        //$data[ORDER_CART][$idx][ORDER_CART_DESTINATION_ID] = 0;
        $data[ORDER_CART][$idx][ORDER_CART_META_TYPE] = maybe_unserialize($row['meta_type']);
        $data[ORDER_CART][$idx][ORDER_CART_META_KEY] = maybe_unserialize($row['meta_key']);
    }
    $data[ORDER_DELIVERY][0][ORDER_DELIVERY_ROW_INDEX] = 0;
    $data[ORDER_DELIVERY][0][ORDER_DELIVERY_NAME1] = isset($entry_data['delivery']['name1']) ? $entry_data['delivery']['name1'] : '';
    $data[ORDER_DELIVERY][0][ORDER_DELIVERY_NAME2] = isset($entry_data['delivery']['name2']) ? $entry_data['delivery']['name2'] : '';
    $data[ORDER_DELIVERY][0][ORDER_DELIVERY_NAME3] = isset($entry_data['delivery']['name3']) ? $entry_data['delivery']['name3'] : '';
    $data[ORDER_DELIVERY][0][ORDER_DELIVERY_NAME4] = isset($entry_data['delivery']['name4']) ? $entry_data['delivery']['name4'] : '';
    $data[ORDER_DELIVERY][0][ORDER_DELIVERY_COUNTRY] = isset($entry_data['delivery']['country']) ? $entry_data['delivery']['country'] : '';
    $data[ORDER_DELIVERY][0][ORDER_DELIVERY_ZIPCODE] = isset($entry_data['delivery']['zipcode']) ? $entry_data['delivery']['zipcode'] : '';
    $data[ORDER_DELIVERY][0][ORDER_DELIVERY_PREF] = isset($entry_data['delivery']['pref']) ? $entry_data['delivery']['pref'] : '';
    $data[ORDER_DELIVERY][0][ORDER_DELIVERY_ADDRESS1] = isset($entry_data['delivery']['address1']) ? $entry_data['delivery']['address1'] : '';
    $data[ORDER_DELIVERY][0][ORDER_DELIVERY_ADDRESS2] = isset($entry_data['delivery']['address2']) ? $entry_data['delivery']['address2'] : '';
    $data[ORDER_DELIVERY][0][ORDER_DELIVERY_TEL] = isset($entry_data['delivery']['tel']) ? $entry_data['delivery']['tel'] : '';
    $data[ORDER_DELIVERY][0][ORDER_DELIVERY_FAX] = isset($entry_data['delivery']['fax']) ? $entry_data['delivery']['fax'] : '';
    $csde_keys = wc2_get_custom_field_keys(WC2_CSDE);
    if (!empty($csde_keys) && is_array($csde_keys)) {
        foreach ($csde_keys as $key) {
            list($pfx, $csde_key) = explode('_', $key, 2);
            if (array_key_exists(WC2_CUSTOM_DELIVERY, $entry_data['delivery']) and array_key_exists($csde_key, $entry_data['delivery'][WC2_CUSTOM_DELIVERY])) {
                if (is_array($entry_data['delivery'][WC2_CUSTOM_DELIVERY][$csde_key])) {
                    $data[ORDER_DELIVERY][0][WC2_CUSTOM_DELIVERY][$csde_key] = serialize($entry_data['delivery'][WC2_CUSTOM_DELIVERY][$csde_key]);
                } else {
                    $data[ORDER_DELIVERY][0][WC2_CUSTOM_DELIVERY][$csde_key] = $entry_data['delivery'][WC2_CUSTOM_DELIVERY][$csde_key];
                }
            } else {
                $data[ORDER_DELIVERY][0][WC2_CUSTOM_DELIVERY][$csde_key] = '';
            }
        }
    }
    //wc2_log(print_r($data,true),"test.log");
    $data = apply_filters('wc2_filter_register_order_entry_data', $data, $args);
    $wc2_order->set_order_data($data);
    $res = $wc2_order->add_order_data();
    if (!$res) {
        wc2_set_log('Order data registration error.', 'register_orderdata');
        return false;
    }
    $order_id = $wc2_order->get_the_order_id();
    if ($entry_data['member_id'] && wc2_is_membersystem_state() && wc2_is_membersystem_point()) {
        $wc2_order->point_processing($order_id, $entry_data['member_id'], $entry_data['order']['payment_method'], $entry_data['order']['getpoint'], $entry_data['order']['usedpoint'], $receipt_status);
    }
    $args['order_id'] = $order_id;
    wc2_set_dec_order_id($args);
    do_action('wc2_action_register_order_data', $args, $data);
    return $order_id;
}
 function order_edit_ajax()
 {
     //wc2_log(print_r($_POST,true),"test.log");
     if ($_POST['action'] != 'order_edit_ajax') {
         die(0);
     }
     $res = false;
     $_POST = WC2_Utils::stripslashes_deep_post($_POST);
     switch ($_POST['mode']) {
         case 'add2cart':
             $slug = apply_filters('wc2_filter_cart_slug', 'cart');
             $general_options = wc2_get_option('general');
             $add_cart = array();
             $item_id = isset($_POST['item_id']) ? $_POST['item_id'] : 0;
             $sku_id = isset($_POST['sku_id']) ? $_POST['sku_id'] : 0;
             $quantity = isset($_POST['quantity']) ? $_POST['quantity'] : 1;
             $cart_row = isset($_POST['cart_row']) ? $_POST['cart_row'] : 1;
             $item_sku_data = wc2_get_item_sku_data($item_id, $sku_id);
             $price = $item_sku_data['sku_price'];
             $price = apply_filters('wc2_filter_admin_order_add2cart_price', $price, $quantity, $item_id, $sku_id, $slug);
             if (empty($general_options['tax_rate'])) {
                 $tax = 0;
             } else {
                 $materials = array('total_price' => $price * $quantity, 'discount' => 0, 'shipping_charge' => 0, 'cod_fee' => 0);
                 $tax = wc2_internal_tax($materials);
             }
             $add_cart['group_id'] = 0;
             $add_cart['row_index'] = $cart_row;
             $add_cart['post_id'] = $item_sku_data['item_post_id'];
             $add_cart['item_id'] = $item_id;
             $add_cart['item_code'] = $item_sku_data['item_code'];
             $add_cart['item_name'] = $item_sku_data['item_name'];
             $add_cart['sku_id'] = $sku_id;
             $add_cart['sku_code'] = $item_sku_data['sku_code'];
             $add_cart['sku_name'] = $item_sku_data['sku_name'];
             $add_cart['price'] = $price;
             $add_cart['cprice'] = $item_sku_data['sku_costprice'];
             $add_cart['quantity'] = $quantity;
             $add_cart['unit'] = $item_sku_data['sku_unit'];
             $add_cart['tax'] = $tax;
             $add_cart['destination_id'] = 0;
             $add_cart['meta_type'] = apply_filters('wc2_filter_admin_order_add2cart_meta_type', array(), $quantity, $item_id, $sku_id, $slug);
             $add_cart['meta_key'] = apply_filters('wc2_filter_admin_order_add2cart_meta_key', array(), $quantity, $item_id, $sku_id, $slug);
             $add_cart = apply_filters('wc2_filter_admin_order_add2cart', $add_cart, $slug);
             $res = wc2_add_order_cart_data($_POST['order_id'], $add_cart);
             if (!$res) {
                 die($res);
             }
             $cart = wc2_get_order_cart_data($_POST['order_id']);
             //*** LI CUSTOMIZE >>>
             //$res = wc2_get_admin_order_cart_row( $_POST['order_id'], $cart );
             $cart_row = wc2_get_admin_order_cart_row($_POST['order_id'], $cart);
             $order_history_form = li_get_order_history_form($_POST['order_id']);
             $res = 'OK' . WC2_SPLIT . $cart_row . WC2_SPLIT . $order_history_form;
             $shipping_charge = li_get_delivery_shipping_charge($_POST['delivery_method'], $_POST['delivery_pref'], $cart);
             $order_modified = wc2_get_today_datetime_format();
             $update_query = " shipping_charge = " . $shipping_charge . ", order_modified = '" . $order_modified . "'";
             wc2_update_order_data_value($_POST['order_id'], $update_query);
             //*** LI CUSTOMIZE <<<
             break;
         case 'cart_remove':
             $res = wc2_remove_order_cart_data($_POST['order_id'], $_POST['cart_id']);
             if (!$res) {
                 die($res);
             }
             $cart = wc2_get_order_cart_data($_POST['order_id']);
             //*** LI CUSTOMIZE >>>
             //$res = wc2_get_admin_order_cart_row( $_POST['order_id'], $cart );
             $cart_row = wc2_get_admin_order_cart_row($_POST['order_id'], $cart);
             $order_history_form = li_get_order_history_form($_POST['order_id']);
             $res = 'OK' . WC2_SPLIT . $cart_row . WC2_SPLIT . $order_history_form;
             $shipping_charge = li_get_delivery_shipping_charge($_POST['delivery_method'], $_POST['delivery_pref'], $cart);
             $order_modified = wc2_get_today_datetime_format();
             $update_query = " shipping_charge = " . $shipping_charge . ", order_modified = '" . $order_modified . "'";
             wc2_update_order_data_value($_POST['order_id'], $update_query);
             //*** LI CUSTOMIZE <<<
             break;
         case 'mail_completion':
         case 'mail_order':
         case 'mail_change':
         case 'mail_receipt':
         case 'mail_estimate':
         case 'mail_cancel':
         case 'mail_other':
             $res = wc2_ordermail_admin($_POST['order_id']);
             break;
         case 'sendmail':
             $res = wc2_send_ordermail_admin();
             break;
         case 'get_add_item':
             $res = wc2_get_add_item($_POST['item_code']);
             break;
         case 'get_select_item':
             $res = wc2_get_select_item($_POST['cat_id']);
             break;
         case 'checkpost':
             $res = wc2_update_order_check($_POST['order_id'], $_POST['checked']);
             break;
         case 'get_member':
             $res = wc2_get_member_neworder($_POST['email']);
             break;
         case 'recalculation':
             $res = wc2_order_recalculation($_POST['order_id'], $_POST['member_id'], $_POST['item_ids'], $_POST['skus'], $_POST['prices'], $_POST['quantities'], $_POST['usedpoint'], $_POST['shipping_charge'], $_POST['cod_fee']);
             break;
     }
     $res = apply_filters('wc2_filter_admin_order_edit_ajax', $res);
     //wc2_log($res,"test.log");
     die($res);
 }