/** * WCMp Calculate shipping for order * * @support flat rate per item * @param int $order_id * @param object $order_posted * @return void */ function wcmp_checkout_order_processed($order_id, $order_posted) { global $wpdb, $WCMp; $order = new WC_Order($order_id); if ($order->has_shipping_method('flat_rate')) { $woocommerce_flat_rate_settings = get_option('woocommerce_flat_rate_settings'); $line_items = $order->get_items('line_item'); if ($woocommerce_flat_rate_settings['enabled'] == 'yes') { if (version_compare(WC_VERSION, '2.5.0', '>=')) { if ($woocommerce_flat_rate_settings['type'] == 'class') { if (!empty($line_items)) { foreach ($line_items as $item_id => $item) { $wc_flat_rate = new WC_Shipping_Flat_Rate(); $product = $order->get_product_from_item($item); $shipping_class = $product->get_shipping_class_id(); $class_cost_string = $shipping_class ? $wc_flat_rate->get_option('class_cost_' . $shipping_class, '') : $wc_flat_rate->get_option('no_class_cost', ''); $cost_item_id = $this->evaluate_flat_shipping_cost($class_cost_string, array('qty' => $item['qty'], 'cost' => $order->get_line_subtotal($item))); $flat_shipping_per_item_val = wc_get_order_item_meta($item_id, 'flat_shipping_per_item', true); if (!$flat_shipping_per_item_val) { wc_add_order_item_meta($item_id, 'flat_shipping_per_item', round($cost_item_id, 2)); } } } } } else { if (version_compare(WC_VERSION, '2.4.0', '>')) { if ($woocommerce_flat_rate_settings['type'] == 'class') { if (!empty($line_items)) { foreach ($line_items as $item_id => $item) { $wc_flat_rate = new WC_Shipping_Flat_Rate(); $product = $order->get_product_from_item($item); $shipping_class = $product->get_shipping_class(); $class_cost_string = $shipping_class ? $wc_flat_rate->get_option('class_cost_' . $shipping_class, '') : $wc_flat_rate->get_option('no_class_cost', ''); $cost_item_id = $this->evaluate_flat_shipping_cost($class_cost_string, array('qty' => $item['qty'], 'cost' => $order->get_line_subtotal($item))); $flat_shipping_per_item_val = wc_get_order_item_meta($item_id, 'flat_shipping_per_item', true); if (!$flat_shipping_per_item_val) { wc_add_order_item_meta($item_id, 'flat_shipping_per_item', round($cost_item_id, 2)); } } } } } else { $woocommerce_flat_rate_settings_cost = $woocommerce_flat_rate_settings['cost']; $woocommerce_flat_rate_settings_fee = $woocommerce_flat_rate_settings['fee']; $woocommerce_flat_rates = get_option('woocommerce_flat_rates'); if ($woocommerce_flat_rate_settings['type'] == 'item') { if (!empty($line_items)) { foreach ($line_items as $item_id => $item) { $fee = $cost = 0; $_product = $order->get_product_from_item($item); $shipping_class = $_product->get_shipping_class(); if (isset($woocommerce_flat_rates[$shipping_class])) { $cost = $woocommerce_flat_rates[$shipping_class]['cost']; $fee = $this->get_fee($woocommerce_flat_rates[$shipping_class]['fee'], $_product->get_price()); } elseif ($woocommerce_flat_rate_settings_cost !== '') { $cost = $woocommerce_flat_rate_settings_cost; $fee = $this->get_fee($woocommerce_flat_rate_settings_fee, $_product->get_price()); $matched = true; } $cost_item_id = ($cost + $fee) * $item['qty']; $flat_shipping_per_item_val = wc_get_order_item_meta($item_id, 'flat_shipping_per_item', true); if (!$flat_shipping_per_item_val) { wc_add_order_item_meta($item_id, 'flat_shipping_per_item', round($cost_item_id, 2)); } } } } } } } } if ($order->has_shipping_method('international_delivery')) { $woocommerce_international_delivery_settings = get_option('woocommerce_international_delivery_settings'); $line_items = $order->get_items('line_item'); if ($woocommerce_international_delivery_settings['enabled'] == 'yes') { if (version_compare(WC_VERSION, '2.5.0', '>=')) { if ($woocommerce_international_delivery_settings['type'] == 'class') { if (!empty($line_items)) { $item_id = false; foreach ($line_items as $item_id => $item) { $wc_international_flat_rate = new WC_Shipping_International_Delivery(); $product = $order->get_product_from_item($item); $shipping_class = $product->get_shipping_class_id(); $class_cost_string = $shipping_class ? $wc_international_flat_rate->get_option('class_cost_' . $shipping_class, '') : $wc_international_flat_rate->get_option('no_class_cost', ''); $cost_item_id = $this->evaluate_flat_shipping_cost($class_cost_string, array('qty' => $item['qty'], 'cost' => $order->get_line_subtotal($item))); $international_flat_shipping_per_item_val = wc_get_order_item_meta($item_id, 'international_flat_shipping_per_item', true); if (!$international_flat_shipping_per_item_val) { wc_add_order_item_meta($item_id, 'international_flat_shipping_per_item', $cost_item_id); } } } } } else { if (version_compare(WC_VERSION, '2.4.0', '>')) { if ($woocommerce_international_delivery_settings['type'] == 'class') { if (!empty($line_items)) { $item_id = false; foreach ($line_items as $item_id => $item) { $wc_international_flat_rate = new WC_Shipping_International_Delivery(); $product = $order->get_product_from_item($item); $shipping_class = $product->get_shipping_class(); $class_cost_string = $shipping_class ? $wc_international_flat_rate->get_option('class_cost_' . $shipping_class, '') : $wc_international_flat_rate->get_option('no_class_cost', ''); $cost_item_id = $this->evaluate_flat_shipping_cost($class_cost_string, array('qty' => $item['qty'], 'cost' => $order->get_line_subtotal($item))); $international_flat_shipping_per_item_val = wc_get_order_item_meta($item_id, 'international_flat_shipping_per_item', true); if (!$international_flat_shipping_per_item_val) { wc_add_order_item_meta($item_id, 'international_flat_shipping_per_item', $cost_item_id); } } } } } } } } $vendor_shipping_array = get_post_meta($order_id, 'dc_pv_shipped', true); $order = new WC_Order($order_id); $commission_array = array(); $mark_ship = 0; $items = $order->get_items('line_item'); foreach ($items as $order_item_id => $item) { $comm_pro_id = $product_id = $item['product_id']; $variation_id = $item['variation_id']; if ($variation_id) { $comm_pro_id = $variation_id; } if ($product_id) { $product_vendors = get_wcmp_product_vendors($product_id); if ($product_vendors) { if (isset($product_vendors->id) && is_array($vendor_shipping_array)) { if (in_array($product_vendors->id, $vendor_shipping_array)) { $mark_ship = 1; } } $insert_query = $wpdb->query($wpdb->prepare("INSERT INTO `{$wpdb->prefix}wcmp_vendor_orders` ( order_id, commission_id, vendor_id, shipping_status, order_item_id, product_id )\n\t\t\t\t\t\t\t\t\t\t\t\t\t VALUES\n\t\t\t\t\t\t\t\t\t\t\t\t\t ( %d, %d, %d, %s, %d, %d ) ON DUPLICATE KEY UPDATE `created` = now()", $order_id, 0, $product_vendors->id, $mark_ship, $order_item_id, $comm_pro_id)); } } } }
/** * Get the order data for the given ID. * * @since 2.5.0 * @param WC_Order $order The order instance * @return array */ protected function get_order_data($order) { $order_post = get_post($order->id); $dp = wc_get_price_decimals(); $order_data = array('id' => $order->id, 'order_number' => $order->get_order_number(), 'created_at' => $this->format_datetime($order_post->post_date_gmt), 'updated_at' => $this->format_datetime($order_post->post_modified_gmt), 'completed_at' => $this->format_datetime($order->completed_date, true), 'status' => $order->get_status(), 'currency' => $order->get_order_currency(), 'total' => wc_format_decimal($order->get_total(), $dp), 'subtotal' => wc_format_decimal($order->get_subtotal(), $dp), 'total_line_items_quantity' => $order->get_item_count(), 'total_tax' => wc_format_decimal($order->get_total_tax(), $dp), 'total_shipping' => wc_format_decimal($order->get_total_shipping(), $dp), 'cart_tax' => wc_format_decimal($order->get_cart_tax(), $dp), 'shipping_tax' => wc_format_decimal($order->get_shipping_tax(), $dp), 'total_discount' => wc_format_decimal($order->get_total_discount(), $dp), 'shipping_methods' => $order->get_shipping_method(), 'payment_details' => array('method_id' => $order->payment_method, 'method_title' => $order->payment_method_title, 'paid' => isset($order->paid_date)), 'billing_address' => array('first_name' => $order->billing_first_name, 'last_name' => $order->billing_last_name, 'company' => $order->billing_company, 'address_1' => $order->billing_address_1, 'address_2' => $order->billing_address_2, 'city' => $order->billing_city, 'state' => $order->billing_state, 'postcode' => $order->billing_postcode, 'country' => $order->billing_country, 'email' => $order->billing_email, 'phone' => $order->billing_phone), 'shipping_address' => array('first_name' => $order->shipping_first_name, 'last_name' => $order->shipping_last_name, 'company' => $order->shipping_company, 'address_1' => $order->shipping_address_1, 'address_2' => $order->shipping_address_2, 'city' => $order->shipping_city, 'state' => $order->shipping_state, 'postcode' => $order->shipping_postcode, 'country' => $order->shipping_country), 'note' => $order->customer_note, 'customer_ip' => $order->customer_ip_address, 'customer_user_agent' => $order->customer_user_agent, 'customer_id' => $order->get_user_id(), 'view_order_url' => $order->get_view_order_url(), 'line_items' => array(), 'shipping_lines' => array(), 'tax_lines' => array(), 'fee_lines' => array(), 'coupon_lines' => array()); // add line items foreach ($order->get_items() as $item_id => $item) { $product = $order->get_product_from_item($item); $product_id = null; $product_sku = null; // Check if the product exists. if (is_object($product)) { $product_id = isset($product->variation_id) ? $product->variation_id : $product->id; $product_sku = $product->get_sku(); } $meta = new WC_Order_Item_Meta($item, $product); $item_meta = array(); foreach ($meta->get_formatted(null) as $meta_key => $formatted_meta) { $item_meta[] = array('key' => $meta_key, 'label' => $formatted_meta['label'], 'value' => $formatted_meta['value']); } $order_data['line_items'][] = array('id' => $item_id, 'subtotal' => wc_format_decimal($order->get_line_subtotal($item, false, false), $dp), 'subtotal_tax' => wc_format_decimal($item['line_subtotal_tax'], $dp), 'total' => wc_format_decimal($order->get_line_total($item, false, false), $dp), 'total_tax' => wc_format_decimal($item['line_tax'], $dp), 'price' => wc_format_decimal($order->get_item_total($item, false, false), $dp), 'quantity' => wc_stock_amount($item['qty']), 'tax_class' => !empty($item['tax_class']) ? $item['tax_class'] : null, 'name' => $item['name'], 'product_id' => $product_id, 'sku' => $product_sku, 'meta' => $item_meta); } // Add shipping. foreach ($order->get_shipping_methods() as $shipping_item_id => $shipping_item) { $order_data['shipping_lines'][] = array('id' => $shipping_item_id, 'method_id' => $shipping_item['method_id'], 'method_title' => $shipping_item['name'], 'total' => wc_format_decimal($shipping_item['cost'], $dp)); } // Add taxes. foreach ($order->get_tax_totals() as $tax_code => $tax) { $order_data['tax_lines'][] = array('id' => $tax->id, 'rate_id' => $tax->rate_id, 'code' => $tax_code, 'title' => $tax->label, 'total' => wc_format_decimal($tax->amount, $dp), 'compound' => (bool) $tax->is_compound); } // Add fees. foreach ($order->get_fees() as $fee_item_id => $fee_item) { $order_data['fee_lines'][] = array('id' => $fee_item_id, 'title' => $fee_item['name'], 'tax_class' => !empty($fee_item['tax_class']) ? $fee_item['tax_class'] : null, 'total' => wc_format_decimal($order->get_line_total($fee_item), $dp), 'total_tax' => wc_format_decimal($order->get_line_tax($fee_item), $dp)); } // Add coupons. foreach ($order->get_items('coupon') as $coupon_item_id => $coupon_item) { $order_data['coupon_lines'][] = array('id' => $coupon_item_id, 'code' => $coupon_item['name'], 'amount' => wc_format_decimal($coupon_item['discount_amount'], $dp)); } $order_data = apply_filters('woocommerce_cli_order_data', $order_data); return $this->flatten_array($order_data); }
/** * Generate form * * @param mixed $order_id * @return string */ public function generate_dokuonecheckout_form($order_id) { global $woocommerce; global $wpdb; static $basket; $order = new WC_Order($order_id); $counter = 0; foreach ($order->get_items() as $item) { $BASKET = $basket . $item['name'] . ',' . $order->get_item_subtotal($item) . ',' . $item['qty'] . ',' . $order->get_line_subtotal($item) . ';'; } $BASKET = ""; // Order Items if (sizeof($order->get_items()) > 0) { foreach ($order->get_items() as $item) { $BASKET .= str_replace(",", "", $item['name']) . "," . number_format($order->get_item_subtotal($item), 2, '.', '') . "," . $item['qty'] . "," . number_format($order->get_item_subtotal($item) * $item['qty'], 2, '.', '') . ";"; } } // Shipping Fee if ($order->order_shipping > 0) { $BASKET .= "Shipping Fee," . number_format($order->order_shipping, 2, '.', '') . ",1," . number_format($order->order_shipping, 2, '.', '') . ";"; } // Tax if ($order->get_total_tax() > 0) { $BASKET .= "Tax," . $order->get_total_tax() . ",1," . $order->get_total_tax() . ";"; } // Fees if (sizeof($order->get_fees()) > 0) { $fee_counter = 0; foreach ($order->get_fees() as $item) { $fee_counter++; $BASKET .= "Fee Item," . $item['line_total'] . ",1," . $item['line_total'] . ";"; } } $BASKET = preg_replace("/([^a-zA-Z0-9.\\-,=:;&% ]+)/", " ", $BASKET); $MALL_ID = trim($this->mall_id); $SHARED_KEY = trim($this->shared_key); $CHAIN = trim($this->chain); $URL = $this->url; $CURRENCY = 360; $TRANSIDMERCHANT = $order_id; $NAME = trim($order->billing_first_name . " " . $order->billing_last_name); $EMAIL = trim($order->billing_email); $ADDRESS = trim($order->billing_address_1 . " " . $order->billing_address_2); $CITY = trim($order->billing_city); $ZIPCODE = trim($order->billing_postcode); $STATE = trim($order->billing_city); $REQUEST_DATETIME = date("YmdHis"); $IP_ADDRESS = $this->getipaddress(); $PROCESS_DATETIME = date("Y-m-d H:i:s"); $PROCESS_TYPE = "REQUEST"; $AMOUNT = number_format($order->order_total, 2, '.', ''); $PHONE = trim($order->billing_phone); $PAYMENT_CHANNEL = ""; $SESSION_ID = COOKIEHASH; $WORDS = sha1(trim($AMOUNT) . trim($MALL_ID) . trim($SHARED_KEY) . trim($TRANSIDMERCHANT)); $dokuonecheckout_args = array('MALLID' => $MALL_ID, 'CHAINMERCHANT' => $CHAIN, 'AMOUNT' => $AMOUNT, 'PURCHASEAMOUNT' => $AMOUNT, 'TRANSIDMERCHANT' => $TRANSIDMERCHANT, 'WORDS' => $WORDS, 'REQUESTDATETIME' => $REQUEST_DATETIME, 'CURRENCY' => $CURRENCY, 'PURCHASECURRENCY' => $CURRENCY, 'SESSIONID' => $SESSION_ID, 'PAYMENTCHANNEL' => $PAYMENT_CHANNEL, 'NAME' => $NAME, 'EMAIL' => $EMAIL, 'HOMEPHONE' => $PHONE, 'MOBILEPHONE' => $PHONE, 'BASKET' => $BASKET, 'ADDRESS' => $ADDRESS, 'CITY' => $CITY, 'STATE' => $STATE, 'ZIPCODE' => $ZIPCODE); $trx['ip_address'] = $IP_ADDRESS; $trx['process_type'] = $PROCESS_TYPE; $trx['process_datetime'] = $PROCESS_DATETIME; $trx['transidmerchant'] = $TRANSIDMERCHANT; $trx['amount'] = $AMOUNT; $trx['session_id'] = $SESSION_ID; $trx['words'] = $WORDS; $trx['message'] = "Transaction request start"; # Insert transaction request to table dokuonecheckout $this->add_dokuonecheckout($trx); // Form $dokuonecheckout_args_array = array(); foreach ($dokuonecheckout_args as $key => $value) { $dokuonecheckout_args_array[] = "<input type='hidden' name='{$key}' value='{$value}' />"; } return '<form action="' . $URL . '" method="post" id="dokuonecheckout_payment_form">' . implode(" \r\n", $dokuonecheckout_args_array) . '<input type="submit" class="button-alt" id="submit_dokuonecheckout_payment_form" value="' . __('Pay via DOKU', 'woocommerce') . '" /> <!-- <a class="button cancel" href="' . $order->get_cancel_order_url() . '">' . __('Cancel order & restore cart', 'woocommerce') . '</a> --> <script type="text/javascript"> jQuery(function(){ jQuery("body").block( { message: "<img src=\\"' . $woocommerce->plugin_url() . '/assets/images/ajax-loader.gif\\" alt=\\"Redirecting...\\" style=\\"float:left; margin-right: 10px;\\" />' . __('Thank you for your order. We are now redirecting you to dokuonecheckout to make payment.', 'woocommerce') . '", overlayCSS: { background: "#fff", opacity: 0.6 }, css: { padding: 20, textAlign: "center", color: "#555", border: "3px solid #aaa", backgroundColor:"#fff", cursor: "wait", lineHeight: "32px" } }); jQuery("#submit_dokuonecheckout_payment_form").click();}); </script> </form>'; }
public function custom_process($order_id) { $order = new WC_Order($order_id); $items = $order->get_items(); $index = 1; // for each order item foreach ($items as $item) { $tixids = array(); $eid = get_post_meta($item['product_id'], '_eventid', true); // Make sure these are indeed ticket sales //$terms = wp_get_post_terms($item['product_id'], 'product_cat', array('fields'=>'names')); // Check if these order items are event ticket items if (!empty($eid)) { // get order post meta array $order_meta = get_post_custom($order_id, true); $user_id_ = $order_meta['_customer_user'][0]; // Specify order type only for ticket sale if ($index == 1) { update_post_meta($order_id, '_order_type', 'evotix'); } // get repeat interval for order item $item_meta = !empty($item['Event-Time']) ? $item['Event-Time'] : false; if ($item_meta) { $ri__ = explode('[RI', $item_meta); $ri_ = explode(']', $ri__[1]); $ri = $ri_[0]; } else { $ri = 0; } // Get customer information if ($user_id_ == 0) { // checkout without creating account $_user = array('name' => $order_meta['_billing_first_name'][0] . ' ' . $order_meta['_billing_last_name'][0], 'email' => $order_meta['_billing_email'][0]); } else { //$myuser_id = $order->user_id; $usermeta = get_user_meta($user_id_); $_user = array('name' => $usermeta['first_name'][0] . ' ' . $usermeta['last_name'][0], 'email' => $usermeta['billing_email'][0]); } // create new event ticket post if ($created_tix_id = $this->create_post()) { $ticket_ids = $ticket_ids_ = array(); // variation product if (!empty($item['variation_id'])) { $_product = new WC_Product_Variation($item['variation_id']); $hh = $_product->get_variation_attributes(); foreach ($hh as $f => $v) { $type = $v; } } else { $type = 'Normal'; } // ticket ID(s) $tid = $created_tix_id . '-' . $order_id . '-' . (!empty($item['variation_id']) ? $item['variation_id'] : $item['product_id']); if ($item['qty'] > 1) { $_tid = ''; $str = 'A'; for ($x = 0; $x < $item['qty']; $x++) { // each ticket in item $strng = $x == 0 ? $str : ++$str; $ticket_ids[$tid . $strng] = 'check-in'; $ticket_ids_[] = $tid . $strng; } } else { // just one ticket $ticket_ids[$tid] = 'check-in'; $ticket_ids_[] = $tid; } // save ticket data $this->create_custom_fields($created_tix_id, 'name', $_user['name']); $this->create_custom_fields($created_tix_id, 'email', $_user['email']); $this->create_custom_fields($created_tix_id, 'qty', $item['qty']); $this->create_custom_fields($created_tix_id, 'cost', $order->get_line_subtotal($item)); $this->create_custom_fields($created_tix_id, 'type', $type); $this->create_custom_fields($created_tix_id, 'ticket_ids', $ticket_ids); $this->create_custom_fields($created_tix_id, 'wcid', $item['product_id']); $this->create_custom_fields($created_tix_id, 'tix_status', 'none'); $this->create_custom_fields($created_tix_id, 'status', 'check-in'); $this->create_custom_fields($created_tix_id, '_eventid', $eid); $this->create_custom_fields($created_tix_id, '_orderid', $order_id); $this->create_custom_fields($created_tix_id, '_customerid', $user_id_); $this->create_custom_fields($created_tix_id, 'repeat_interval', $ri); // save event ticket id to order id $tixids = get_post_meta($order_id, '_tixids', true); if (is_array($tixids)) { // if previously saved tixid array $tixids_ = array_merge($tixids, $ticket_ids_); } else { // empty of saved as string $tixids_ = $ticket_ids_; } // save ticket ids as array update_post_meta($order_id, '_tixids', $tixids_); // update product capacity if repeat interval capacity is set // seperately per individual repeat interval $emeta = get_post_meta($eid); if (evo_check_yn($emeta, '_manage_repeat_cap') && evo_check_yn($emeta, 'evcal_repeat') && !empty($emeta['repeat_intervals']) && !empty($emeta['ri_capacity'])) { // repeat capacity values for this event $ri_capacity = unserialize($emeta['ri_capacity'][0]); // repeat capacity for this repeat interval $capacity_for_this_event = $ri_capacity[$ri]; $new_capacity = $capacity_for_this_event - $item['qty']; $ri_capacity[$ri] = $new_capacity >= 0 ? $new_capacity : 0; // save the adjusted repeat capacity update_post_meta($eid, 'ri_capacity', $ri_capacity); } } } $index++; } // endforeach }
/** * Translate WooCommerce order into coinsimple invoice and POST invoice to coinsimple.com. * * @access public * @todo determine how to handle order statuses in this function. * @param string $order_id rendezvous token that identifies a WooCommerce order. * @param $reply passed by reference, returned if successful. * @return boolean true if successful or false if unsuccessful. */ public function post_invoice($order_id, &$reply) { $wc_order = new WC_Order($order_id); $invoice = new \CoinSimple\Invoice(); $invoice->setName($wc_order->billing_first_name . ' ' . $wc_order->billing_last_name); $invoice->setEmail($wc_order->billing_email); $invoice->setCurrency(strtolower(get_woocommerce_currency())); // create line items $wc_items = $wc_order->get_items(); foreach ($wc_items as $wc_item) { if (get_option('woocommerce_prices_include_tax') === 'yes') { $line_total = $wc_order->get_line_subtotal($wc_item, true, true); } else { $line_total = $wc_order->get_line_subtotal($wc_item, false, true); } $item = array("description" => $wc_item['name'], "quantity" => floatval($wc_item['qty']), "price" => round($line_total / $wc_item['qty'], 2)); $invoice->addItem($item); } $invoice->setNotes($this->get_option("notes")); //tax if ($wc_order->get_total_tax() != 0 && get_option('woocommerce_prices_include_tax') !== 'yes') { $tax = 0; foreach ($wc_order->get_tax_totals() as $value) { $tax += $value->amount; } $tax = round($tax, 2); $invoice->addItem(array("description" => "Sales tax", "quantity" => 1, "price" => $tax)); } // shipping if ($wc_order->get_total_shipping() != 0) { $shipping = $wc_order->get_total_shipping(); if (get_option('woocommerce_prices_include_tax') === 'yes') { $shipping += $wc_order->get_shipping_tax(); } $invoice->addItem(array("description" => "Shipping and handling", "quantity" => 1, "price" => round($shipping, 2))); } // coupens if ($wc_order->get_total_discount() != 0) { $invoice->addItem(array("description" => "Discounts", "quantity" => 1, "price" => -round($wc_order->get_total_discount(), 2))); } // settings part $invoice->setCallbackUrl(add_query_arg('wc-api', 'wc_coinsimple', home_url('/'))); $invoice->setCustom(array("order_id" => $wc_order->id, "order_key" => $wc_order->order_key)); if ($this->get_option("redirect_url") != "") { $invoice->setRedirectUrl($this->get_option("redirect_url")); } $business = new \CoinSimple\Business($this->get_option("business_id"), $this->get_option('api_key')); $res = $business->sendInvoice($invoice); if ($res->status == "ok") { $reply = $res; return true; } else { return false; } }
/** * Gets Order product Price in voucher code * * @package WooCommerce - PDF Vouchers * @since 1.1.0 */ public function woo_vou_get_formatted_product_price($orderid, $item, $tax_display = '') { //Get prefix $prefix = WOO_VOU_META_PREFIX; //Get Order $woo_order = new WC_Order($orderid); if (!$tax_display) { $tax_display = $woo_order->tax_display_cart; } if (!isset($item['line_subtotal']) || !isset($item['line_subtotal_tax'])) { return ''; } //get multipdf option in ordermeta $multiple_pdf = get_post_meta($orderid, $prefix . 'multiple_pdf', true); //Get Item quantity $item_qty = isset($item['qty']) ? $item['qty'] : ''; if ('excl' == $tax_display) { $ex_tax_label = $woo_order->prices_include_tax ? 1 : 0; $line_subtotal = $woo_order->get_line_subtotal($item); if ($multiple_pdf == 'yes' && !empty($item_qty)) { $line_subtotal = $line_subtotal / $item_qty; } $subtotal = wc_price($line_subtotal, array('ex_tax_label' => $ex_tax_label, 'currency' => $woo_order->get_order_currency())); } else { $line_subtotal = $woo_order->get_line_subtotal($item, true); if ($multiple_pdf == 'yes' && !empty($item_qty)) { $line_subtotal = $line_subtotal / $item_qty; } $subtotal = wc_price($line_subtotal, array('currency' => $woo_order->get_order_currency())); } return apply_filters('woo_vou_get_formatted_product_price', $subtotal, $orderid, $item, $tax_display); }