当前位置: 首页>>代码示例>>PHP>>正文


PHP WC_Order::get_total_discount方法代码示例

本文整理汇总了PHP中WC_Order::get_total_discount方法的典型用法代码示例。如果您正苦于以下问题:PHP WC_Order::get_total_discount方法的具体用法?PHP WC_Order::get_total_discount怎么用?PHP WC_Order::get_total_discount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在WC_Order的用法示例。


在下文中一共展示了WC_Order::get_total_discount方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1:

 function meta_box()
 {
     global $woocommerce, $post;
     $order = new WC_Order($post->ID);
     $order_discount = $order->get_total_discount();
     $order_tax = $order->get_total_tax();
     $order_subtotal = $order->get_subtotal_to_display();
     $order_total = $order->get_formatted_order_total();
     get_payment_gateway_fields('paypal');
     woocommerce_wp_select(array('id' => 'payment_type', 'label' => '', 'value' => 'default', 'options' => ins_get_payment_methods(), 'class' => 'chosen-select'));
     woocommerce_wp_select(array('id' => 'add_coupon', 'label' => '', 'value' => 'default', 'options' => ins_get_coupons(), 'class' => 'chosen-select'));
     woocommerce_wp_text_input(array('id' => 'sub_total', 'label' => __('Order Subtotal', 'instore'), 'placeholder' => 0.0, 'value' => $order_subtotal));
     woocommerce_wp_text_input(array('id' => 'order_tax', 'label' => __('Order Tax', 'instore'), 'placeholder' => 0.0, 'value' => $order_tax));
     woocommerce_wp_text_input(array('id' => 'applied_discount', 'label' => __('Applied Discount', 'instore'), 'placeholder' => 0.0, 'value' => $order_discount));
 }
开发者ID:jusmark123,项目名称:instore-Dev,代码行数:15,代码来源:class-instore-admin-shop-metabox.php

示例2: getRequestData

/**
 * Bundle and format the order information
 * @param WC_Order $order
 * Send as much information about the order as possible to Conekta
 */
function getRequestData($order)
{
    if ($order and $order != null) {
        // custom fields
        $custom_fields = array("total_discount" => (double) $order->get_total_discount() * 100);
        // $user_id = $order->get_user_id();
        // $is_paying_customer = false;
        $order_coupons = $order->get_used_coupons();
        // if ($user_id != 0) {
        //     $custom_fields = array_merge($custom_fields, array(
        //         "is_paying_customer" => is_paying_customer($user_id)
        //     ));
        // }
        if (count($order_coupons) > 0) {
            $custom_fields = array_merge($custom_fields, array("coupon_code" => $order_coupons[0]));
        }
        return array("amount" => (double) $order->get_total() * 100, "token" => $_POST['conektaToken'], "shipping_method" => $order->get_shipping_method(), "shipping_carrier" => $order->get_shipping_method(), "shipping_cost" => (double) $order->get_total_shipping() * 100, "monthly_installments" => (int) $_POST['monthly_installments'], "currency" => strtolower(get_woocommerce_currency()), "description" => sprintf("Charge for %s", $order->billing_email), "card" => array_merge(array("name" => sprintf("%s %s", $order->billing_first_name, $order->billing_last_name), "address_line1" => $order->billing_address_1, "address_line2" => $order->billing_address_2, "billing_company" => $order->billing_company, "phone" => $order->billing_phone, "email" => $order->billing_email, "address_city" => $order->billing_city, "address_zip" => $order->billing_postcode, "address_state" => $order->billing_state, "address_country" => $order->billing_country, "shipping_address_line1" => $order->shipping_address_1, "shipping_address_line2" => $order->shipping_address_2, "shipping_phone" => $order->shipping_phone, "shipping_email" => $order->shipping_email, "shipping_address_city" => $order->shipping_city, "shipping_address_zip" => $order->shipping_postcode, "shipping_address_state" => $order->shipping_state, "shipping_address_country" => $order->shipping_country), $custom_fields));
    }
    return false;
}
开发者ID:pcuervo,项目名称:wp-yolcan,代码行数:25,代码来源:conekta_gateway_helper.php

示例3: get_order

 /**
  * @param WC_Order $order
  *
  * @return array
  */
 public static function get_order($order)
 {
     $serializer = array('id' => (string) $order->id, 'articles' => self::get_articles($order->get_items()), 'currency' => get_woocommerce_currency(), 'total_amount' => Aplazame_Filters::decimals($order->get_total()), 'discount' => Aplazame_Filters::decimals($order->get_total_discount()));
     return $serializer;
 }
开发者ID:aplazame,项目名称:woocommerce,代码行数:10,代码来源:Serializers.php

示例4: process_payment

 /**
  * Process the payment and return the result
  *
  * @access public
  * @param int $order_id
  * @return array
  */
 public function process_payment($order_id)
 {
     $this->init_mijireh();
     $mj_order = new Mijireh_Order();
     $wc_order = new WC_Order($order_id);
     // add items to order
     $items = $wc_order->get_items();
     foreach ($items as $item) {
         $product = $wc_order->get_product_from_item($item);
         if (get_option('woocommerce_prices_include_tax') == 'yes') {
             $mj_order->add_item($item['name'], $wc_order->get_item_subtotal($item, true, false), $item['qty'], $product->get_sku());
         } else {
             $mj_order->add_item($item['name'], $wc_order->get_item_subtotal($item, false, true), $item['qty'], $product->get_sku());
         }
     }
     // Handle fees
     $items = $wc_order->get_fees();
     foreach ($items as $item) {
         $mj_order->add_item($item['name'], number_format($item['line_total'], 2, '.', ','), 1, '');
     }
     // add billing address to order
     $billing = new Mijireh_Address();
     $billing->first_name = $wc_order->billing_first_name;
     $billing->last_name = $wc_order->billing_last_name;
     $billing->street = $wc_order->billing_address_1;
     $billing->apt_suite = $wc_order->billing_address_2;
     $billing->city = $wc_order->billing_city;
     $billing->state_province = $wc_order->billing_state;
     $billing->zip_code = $wc_order->billing_postcode;
     $billing->country = $wc_order->billing_country;
     $billing->company = $wc_order->billing_company;
     $billing->phone = $wc_order->billing_phone;
     if ($billing->validate()) {
         $mj_order->set_billing_address($billing);
     }
     // add shipping address to order
     $shipping = new Mijireh_Address();
     $shipping->first_name = $wc_order->shipping_first_name;
     $shipping->last_name = $wc_order->shipping_last_name;
     $shipping->street = $wc_order->shipping_address_1;
     $shipping->apt_suite = $wc_order->shipping_address_2;
     $shipping->city = $wc_order->shipping_city;
     $shipping->state_province = $wc_order->shipping_state;
     $shipping->zip_code = $wc_order->shipping_postcode;
     $shipping->country = $wc_order->shipping_country;
     $shipping->company = $wc_order->shipping_company;
     if ($shipping->validate()) {
         $mj_order->set_shipping_address($shipping);
     }
     // set order name
     $mj_order->first_name = $wc_order->billing_first_name;
     $mj_order->last_name = $wc_order->billing_last_name;
     $mj_order->email = $wc_order->billing_email;
     // set order totals
     $mj_order->total = $wc_order->get_total();
     $mj_order->discount = $wc_order->get_total_discount();
     if (get_option('woocommerce_prices_include_tax') == 'yes') {
         $mj_order->shipping = round($wc_order->get_total_shipping() + $wc_order->get_shipping_tax(), 2);
         $mj_order->show_tax = false;
     } else {
         $mj_order->shipping = round($wc_order->get_total_shipping(), 2);
         $mj_order->tax = $wc_order->get_total_tax();
     }
     // add meta data to identify woocommerce order
     $mj_order->add_meta_data('wc_order_id', $order_id);
     // Set URL for mijireh payment notificatoin - use WC API
     $mj_order->return_url = str_replace('https:', 'http:', add_query_arg('wc-api', 'WC_Gateway_Mijireh', home_url('/')));
     // Identify woocommerce
     $mj_order->partner_id = 'woo';
     try {
         $mj_order->create();
         $result = array('result' => 'success', 'redirect' => $mj_order->checkout_url);
         return $result;
     } catch (Mijireh_Exception $e) {
         wc_add_notice(__('Mijireh error:', 'woocommerce') . $e->getMessage(), 'error');
     }
 }
开发者ID:Joaquinsemp,项目名称:patriestausado,代码行数:84,代码来源:class-wc-gateway-mijireh.php

示例5: array

 function charge_payment($order_id)
 {
     global $woocommerce;
     $order_items = array();
     $order = new WC_Order($order_id);
     MEOWallet_Config::$isProduction = $this->environment == 'production' ? TRUE : FALSE;
     MEOWallet_Config::$apikey = MEOWallet_Config::$isProduction ? $this->apikey_live : $this->apikey_sandbox;
     //MEOWallet_Config::$isTuned = 'yes';
     $params = array('payment' => array('client' => array('name' => $order->billing_first_name . ' ' . $order->billing_last_name, 'email' => $_POST['billing_email'], 'address' => array('country' => $_POST['billing_country'], 'address' => $_POST['billing_address_1'], 'city' => $_POST['billing_city'], 'postalcode' => $_POST['billing_postcode'])), 'amount' => $order->get_total(), 'currency' => 'EUR', 'items' => $items, 'url_confirm' => get_permalink(woocommerce_get_page_id('shop')) . '?' . $post_result_array->id, 'url_cancel' => get_permalink(woocommerce_get_page_id('shop')) . '?' . $post_result_array->id));
     $client_details = array();
     $client_details['name'] = $_POST['billing_first_name'] . ' ' . $_POST['billing_last_name'];
     $client_details['email'] = $_POST['billing_email'];
     //$client_details['address'] = $client_address;
     $client_address = array();
     $client_address['country'] = $_POST['billing_country'];
     $client_address['address'] = $_POST['billing_address_1'];
     $client_address['city'] = $_POST['billing_city'];
     $client_address['postalcode'] = $_POST['billing_postcode'];
     //$params['payment']['client'] = $client_details;
     //$params['payment']['client']['address'] = $client_address;
     $items = array();
     if (sizeof($order->get_items()) > 0) {
         foreach ($order->get_items() as $item) {
             if ($item['qty']) {
                 $product = $order->get_product_from_item($item);
                 $client_items = array();
                 $client_items['client']['id'] = $item['id'];
                 $client_item['client']['name'] = $item['name'];
                 $client_items['client']['description'] = $item['name'];
                 $client_item['client']['qt'] = $item['qty'];
                 $items['client'][] = $client_items;
             }
         }
     }
     if ($order->get_total_shipping() > 0) {
         $items[] = array('id' => 'shippingfee', 'price' => $order->get_total_shipping(), 'quantity' => 1, 'name' => 'Shipping Fee');
     }
     if ($order->get_total_tax() > 0) {
         $items[] = array('id' => 'taxfee', 'price' => $order->get_total_tax(), 'quantity' => 1, 'name' => 'Tax');
     }
     if ($order->get_order_discount() > 0) {
         $items[] = array('id' => 'totaldiscount', 'price' => $order->get_total_discount() * -1, 'quantity' => 1, 'name' => 'Total Discount');
     }
     if (sizeof($order->get_fees()) > 0) {
         $fees = $order->get_fees();
         $i = 0;
         foreach ($fees as $item) {
             $items[] = array('id' => 'itemfee' . $i, 'price' => $item['line_total'], 'quantity' => 1, 'name' => $item['name']);
             $i++;
         }
     }
     //$params['client']['amount'] = $order->get_total();
     //if (get_woocommerce_currency() != 'EUR'){
     //	foreach ($items as &$item){
     //		$item['price'] = $item['price'] * $this->to_euro_rate;
     //	}
     //	unset($item);
     //	$params['payment']['amount'] *= $this->to_euro_rate;
     //}
     //$params['payment']['items'] = $items;
     //$woocommerce->cart->empty_cart();
     return MEOWallet_Checkout::getRedirectionUrl($params);
 }
开发者ID:jquiterio,项目名称:meowallet,代码行数:63,代码来源:meowallet.php

示例6: sendCustomerInvoice

function sendCustomerInvoice($order_id)
{
    PlexLog::addLog(' Info =>@sendCustomerInvoice order_id=' . $order_id);
    $wooCommerceOrderObject = new WC_Order($order_id);
    $user_id = $wooCommerceOrderObject->get_user_id();
    $customerMailId = $wooCommerceOrderObject->billing_email;
    $invoice_mail_content = '';
    $invoice_mail_content .= '
	<table border="0" cellpadding="0" cellspacing="0" width="600" id="template_container">
		<tbody>
			<tr>
				<td align="center" valign="top">
					<font face="Arial" style="font-weight:bold;background-color:#8fd1c8;color:#202020;"></font>
					<table border="0" cellpadding="0" cellspacing="0" width="600" id="template_header" bgcolor="#8fd1c8">
						<tbody>
							<tr >
					            <td width="20" height="20"  bgcolor="#8fd1c8">&nbsp;</td>
					            <td bgcolor="#8fd1c8">&nbsp;</td>
					            <td width="20" bgcolor="#8fd1c8">&nbsp;</td>
					        </tr>
					        <tr >
					            <td width="20"  bgcolor="#8fd1c8">&nbsp;</td>
					            <td bgcolor="#8fd1c8" style="font-weight:bold;font-size:24px;color:#ffffff;" ><h2 style="margin:0;">Welcome to ' . get_option('blogname') . '! <br>Thank you for your order. We\'ll be in touch shortly with additional order and shipping information.</h2></td>
					            <td width="20" bgcolor="#8fd1c8">&nbsp;</td>
					        </tr>
					        <tr >
					            <td width="20" height="20"  bgcolor="#8fd1c8">&nbsp;</td>
					            <td bgcolor="#8fd1c8">&nbsp;</td>
					            <td width="20" bgcolor="#8fd1c8">&nbsp;</td>
					        </tr>
                        </tbody>
                    </table>
                </td>
            </tr>
            <tr>
            	<td align="center" valign="top">
            		<table border="0" cellpadding="0" cellspacing="0" width="600" id="template_body">
            			<tbody>
            				<tr>
            					<td valign="top">
            						<font style="background-color:#f9f9f9">
            							<table border="0" cellpadding="20" cellspacing="0" width="100%">
            								<tbody>
            									<tr>
	            									<td valign="top">
	            										<div>
	            											<font face="Arial" align="left" style="font-size:18px;color:#8a8a8a">
	            												<p>Your order #' . get_post_meta($order_id, "plexOrderId", true) . ' has been received and is now being processed. Your order details are shown below for your reference:</p>
																<table cellspacing="0" cellpadding="6" border="1" style="width:100%;">
																	<thead>
																		<tr>
																			<th scope="col">
																				<font align="left">Product</font>
																			</th>
																			<th scope="col">
																				<font align="left">Quantity</font>
																			</th>
																			<th scope="col">
																				<font align="left">Price</font>
																			</th>
																		</tr>
																	</thead>
																	<tbody>';
    $allItems = $wooCommerceOrderObject->get_items();
    foreach ($allItems as $key => $value) {
        $invoice_mail_content .= '
																				<tr>
																					<td>
																						<font align="left">' . $value["name"] . '<br><small></small></font>
																					</td>
																					<td>
																						<font align="left">' . $value["qty"] . '</font>
																					</td>
																					<td>
																						<font align="left">
																							<span class="amount">$' . $value["line_subtotal"] . '</span>
																						</font>
																					</td>
																				</tr>';
    }
    $invoice_mail_content .= '																		
																	</tbody>
																	<tfoot style="text-align: left;">
																		<tr>
																			<th scope="row" colspan="2">
																				<font align="left">Cart Subtotal:</font>
																			</th>
																			<td>
																				<font align="left">
																					<span class="amount">$' . sprintf('%0.2f', $wooCommerceOrderObject->get_subtotal()) . '</span>
																				</font>
																			</td>
																		</tr>';
    if ($wooCommerceOrderObject->get_total_discount() > 0.0) {
        $invoice_mail_content .= '<tr>
																			<th scope="row" colspan="2">
																				<font align="left">Discount:</font>
																			</th>
																			<td>
																				<font align="left">
//.........这里部分代码省略.........
开发者ID:quadranttech,项目名称:wp-plex,代码行数:101,代码来源:plexsupportforwoocommerce.php

示例7: foreach

 /**
  * Process the payment and return the result
  **/
 function process_payment($order_id)
 {
     global $woocommerce;
     require_once "alipay_config.php";
     require_once "class/alipay_service.php";
     $order = new WC_Order($order_id);
     if (sizeof($order->get_items()) > 0) {
         foreach ($order->get_items() as $item) {
             if ($item['qty']) {
                 $item_names[] = $item['name'] . ' x ' . $item['qty'];
             }
         }
     }
     //扩展功能参数——默认支付方式
     $paymethod = "directPay";
     //默认支付方式,四个值可选:bankPay(网银); cartoon(卡通); directPay(余额); CASH(网点支付)
     $defaultbank = "";
     //扩展功能参数——防钓鱼
     //请慎重选择是否开启防钓鱼功能
     //exter_invoke_ip、anti_phishing_key一旦被使用过,那么它们就会成为必填参数
     //开启防钓鱼功能后,服务器、本机电脑必须支持远程XML解析,请配置好该环境。
     //若要使用防钓鱼功能,请打开class文件夹中alipay_function.php文件,找到该文件最下方的query_timestamp函数,根据注释对该函数进行修改
     //建议使用POST方式请求数据
     $anti_phishing_key = '';
     //防钓鱼时间戳
     $exter_invoke_ip = '';
     //获取客户端的IP地址,建议:编写获取客户端IP地址的程序
     //如:
     //$exter_invoke_ip = '202.1.1.1';
     //$anti_phishing_key = query_timestamp($partner);		//获取防钓鱼时间戳函数
     //扩展功能参数——其他
     $extra_common_param = '';
     //自定义参数,可存放任何内容(除=、&等特殊字符外),不会显示在页面上
     $buyer_email = '';
     //默认买家支付宝账号
     //扩展功能参数——分润(若要使用,请按照注释要求的格式赋值)
     $royalty_type = "";
     //提成类型,该值为固定值:10,不需要修改
     $royalty_parameters = "";
     //提成信息集,与需要结合商户网站自身情况动态获取每笔交易的各分润收款账号、各分润金额、各分润说明。最多只能设置10条
     //各分润金额的总和须小于等于total_fee
     //提成信息集格式为:收款方Email_1^金额1^备注1|收款方Email_2^金额2^备注2
     //如:
     //royalty_type = "10"
     //royalty_parameters	= "111@126.com^0.01^分润备注一|222@126.com^0.01^分润备注二"
     /////////////////////////////////////////////////
     //构造要请求的参数数组,无需改动
     $parameter = array("service" => "create_direct_pay_by_user", "payment_type" => "1", "partner" => $partner, "seller_email" => $seller_email, "return_url" => $return_url, "notify_url" => $notify_url, "_input_charset" => $_input_charset, "show_url" => get_bloginfo('wpurl'), "out_trade_no" => 'CIP' . $order_id, "subject" => implode(',', $item_names), "body" => implode(',', $item_names), "total_fee" => number_format($order->get_order_total() - $order->get_total_discount(), 2, '.', ''), "paymethod" => $paymethod, "defaultbank" => $defaultbank, "anti_phishing_key" => $anti_phishing_key, "exter_invoke_ip" => $exter_invoke_ip, "buyer_email" => $buyer_email, "extra_common_param" => $extra_common_param, "royalty_type" => $royalty_type, "royalty_parameters" => $royalty_parameters);
     //构造请求函数
     $alipay = new alipay_service($parameter, $key, $sign_type);
     $sHtmlText = $alipay->build_form();
     $html = "<html>\r\n\t\t\t<head>\r\n\t\t\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n\t\t\t\t<title>正在前往支付宝...</title>\r\n\t\t\t</head>\r\n\t\t\t<body><div  style='display:none'>{$sHtmlText}</div";
     echo $html;
     exit;
     return array('result' => 'success', 'redirect' => $sHtmlText);
 }
开发者ID:proj-2014,项目名称:vlan247-test-wp2,代码行数:59,代码来源:ciphp-wc-alipay.php

示例8: process_payment

 /**
  * Process the payment and return the result
  *
  * @access public
  * @param int $order_id
  * @return array
  */
 public function process_payment($order_id)
 {
     $this->init_mijireh();
     $mj_order = new Mijireh_Order();
     $wc_order = new WC_Order($order_id);
     // Avoid rounding issues altogether by sending the order as one lump
     if (get_option('woocommerce_prices_include_tax') == 'yes') {
         // Don't pass items - Pass 1 item for the order items overall
         $item_names = array();
         if (sizeof($wc_order->get_items()) > 0) {
             foreach ($wc_order->get_items() as $item) {
                 if ($item['qty']) {
                     $item_names[] = $item['name'] . ' x ' . $item['qty'];
                 }
             }
         }
         $mj_order->add_item(sprintf(__('Order %s', 'woocommerce'), $wc_order->get_order_number()) . " - " . implode(', ', $item_names), number_format($wc_order->get_total() - round($wc_order->get_total_shipping() + $wc_order->get_shipping_tax(), 2) + $wc_order->get_order_discount(), 2, '.', ''), 1);
         if ($wc_order->get_total_shipping() + $wc_order->get_shipping_tax() > 0) {
             $mj_order->shipping = number_format($wc_order->get_total_shipping() + $wc_order->get_shipping_tax(), 2, '.', '');
         }
         $mj_order->show_tax = false;
         // No issues when prices exclude tax
     } else {
         // add items to order
         $items = $wc_order->get_items();
         foreach ($items as $item) {
             $product = $wc_order->get_product_from_item($item);
             $mj_order->add_item($item['name'], $wc_order->get_item_subtotal($item, false, true), $item['qty'], $product->get_sku());
         }
         // Handle fees
         $items = $wc_order->get_fees();
         foreach ($items as $item) {
             $mj_order->add_item($item['name'], number_format($item['line_total'], 2, '.', ','), 1, '');
         }
         $mj_order->shipping = round($wc_order->get_total_shipping(), 2);
         $mj_order->tax = $wc_order->get_total_tax();
     }
     // set order totals
     $mj_order->total = $wc_order->get_total();
     $mj_order->discount = $wc_order->get_total_discount();
     // add billing address to order
     $billing = new Mijireh_Address();
     $billing->first_name = $wc_order->billing_first_name;
     $billing->last_name = $wc_order->billing_last_name;
     $billing->street = $wc_order->billing_address_1;
     $billing->apt_suite = $wc_order->billing_address_2;
     $billing->city = $wc_order->billing_city;
     $billing->state_province = $wc_order->billing_state;
     $billing->zip_code = $wc_order->billing_postcode;
     $billing->country = $wc_order->billing_country;
     $billing->company = $wc_order->billing_company;
     $billing->phone = $wc_order->billing_phone;
     if ($billing->validate()) {
         $mj_order->set_billing_address($billing);
     }
     // add shipping address to order
     $shipping = new Mijireh_Address();
     $shipping->first_name = $wc_order->shipping_first_name;
     $shipping->last_name = $wc_order->shipping_last_name;
     $shipping->street = $wc_order->shipping_address_1;
     $shipping->apt_suite = $wc_order->shipping_address_2;
     $shipping->city = $wc_order->shipping_city;
     $shipping->state_province = $wc_order->shipping_state;
     $shipping->zip_code = $wc_order->shipping_postcode;
     $shipping->country = $wc_order->shipping_country;
     $shipping->company = $wc_order->shipping_company;
     if ($shipping->validate()) {
         $mj_order->set_shipping_address($shipping);
     }
     // set order name
     $mj_order->first_name = $wc_order->billing_first_name;
     $mj_order->last_name = $wc_order->billing_last_name;
     $mj_order->email = $wc_order->billing_email;
     // add meta data to identify woocommerce order
     $mj_order->add_meta_data('wc_order_id', $order_id);
     // Set URL for mijireh payment notificatoin - use WC API
     $mj_order->return_url = WC()->api_request_url('WC_Gateway_Mijireh');
     // Identify woocommerce
     $mj_order->partner_id = 'woo';
     try {
         $mj_order->create();
         $result = array('result' => 'success', 'redirect' => $mj_order->checkout_url);
         return $result;
     } catch (Mijireh_Exception $e) {
         wc_add_notice(__('Mijireh error:', 'woocommerce') . $e->getMessage() . print_r($mj_order, true), 'error');
     }
 }
开发者ID:chhavinav,项目名称:fr.ilovejuice,代码行数:94,代码来源:class-wc-gateway-mijireh.php

示例9: foreach

    /**
     * Process the payment and return the result
     **/
    function process_payment($order_id)
    {
        global $woocommerce;
        require_once "classes/RequestHandler.class.php";
        $order = new WC_Order($order_id);
        if (sizeof($order->get_items()) > 0) {
            foreach ($order->get_items() as $item) {
                if ($item['qty']) {
                    $item_names[] = $item['name'] . ' x ' . $item['qty'];
                }
            }
        }
        //////////////////////////////
        /* 商户号 */
        $partner = $this->tenpayUid;
        /* 密钥 */
        $key = $this->tenpayKey;
        //订单号,此处用时间加随机数生成,商户根据自己情况调整,只要保持全局唯一就行
        $out_trade_no = 'CIP' . $order_id;
        /* 创建支付请求对象 */
        $reqHandler = new RequestHandler();
        $reqHandler->init();
        $reqHandler->setKey($key);
        $reqHandler->setGateUrl("https://gw.tenpay.com/gateway/pay.htm");
        //----------------------------------------
        //设置支付参数
        //----------------------------------------
        $reqHandler->setParameter("partner", $partner);
        $reqHandler->setParameter("out_trade_no", $out_trade_no);
        $reqHandler->setParameter("total_fee", ($order->get_order_total() - $order->get_total_discount()) * 100);
        //总金额
        $reqHandler->setParameter("return_url", CI_WC_ALI_PATH . "/payReturnUrl.php");
        $reqHandler->setParameter("notify_url", CI_WC_ALI_PATH . "/payNotifyUrl.php");
        $reqHandler->setParameter("body", implode(',', $item_names));
        $reqHandler->setParameter("bank_type", "DEFAULT");
        //银行类型,默认为财付通
        //用户ip
        $reqHandler->setParameter("spbill_create_ip", $_SERVER['REMOTE_ADDR']);
        //客户端IP
        $reqHandler->setParameter("fee_type", "1");
        //币种
        $reqHandler->setParameter("subject", '');
        //商品名称,(中介交易时必填)
        //系统可选参数
        $reqHandler->setParameter("sign_type", "MD5");
        //签名方式,默认为MD5,可选RSA
        $reqHandler->setParameter("service_version", "1.0");
        //接口版本号
        $reqHandler->setParameter("input_charset", "UTF-8");
        //字符集
        $reqHandler->setParameter("sign_key_index", "1");
        //密钥序号
        //业务可选参数
        $reqHandler->setParameter("attach", "");
        //附件数据,原样返回就可以了
        $reqHandler->setParameter("product_fee", "");
        //商品费用
        $reqHandler->setParameter("transport_fee", "0");
        //物流费用
        $reqHandler->setParameter("time_start", date("YmdHis"));
        //订单生成时间
        $reqHandler->setParameter("time_expire", "");
        //订单失效时间
        $reqHandler->setParameter("buyer_id", "");
        //买方财付通帐号
        $reqHandler->setParameter("goods_tag", "");
        //商品标记
        $reqHandler->setParameter("trade_mode", "1");
        //交易模式(1.即时到帐模式,2.中介担保模式,3.后台选择(卖家进入支付中心列表选择))
        $reqHandler->setParameter("transport_desc", "");
        //物流说明
        $reqHandler->setParameter("trans_type", "1");
        //交易类型
        $reqHandler->setParameter("agentid", "");
        //平台ID
        $reqHandler->setParameter("agent_type", "");
        //代理模式(0.无代理,1.表示卡易售模式,2.表示网店模式)
        $reqHandler->setParameter("seller_id", "");
        //卖家的商户号
        $reqUrl = $reqHandler->getRequestURL();
        $html_text = '
	<script>window.location.href="' . $reqUrl . '"</script>';
        //param end
        $output = "\r\n\t\t\t<html>\r\n\t\t    <head>\r\n\t\t\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n\t\t        <title>正在前往财付通...</title>\r\n\t\t    </head>\r\n\t\t    <body>{$html_text}</body></html>";
        echo $output;
        exit;
        return array('result' => 'success', 'redirect' => $output);
    }
开发者ID:proj-2014,项目名称:vlan247-test-wp2,代码行数:91,代码来源:ciphp-wc-tenpay.php

示例10: foreach

    /**
     * Process the payment and return the result
     **/
    function process_payment($order_id)
    {
        global $woocommerce;
        $order = new WC_Order($order_id);
        if (sizeof($order->get_items()) > 0) {
            foreach ($order->get_items() as $item) {
                if ($item['qty']) {
                    $item_names[] = $item['name'] . ' x ' . $item['qty'];
                }
            }
        }
        //
        $v_mid = $this->bankUid;
        // 商户号,这里为测试商户号1001,替换为自己的商户号(老版商户号为4位或5位,新版为8位)即可
        $v_url = CI_WC_ALI_PATH . '/chinabank/receive.php';
        // 请填写返回url,地址应为绝对路径,带有http协议
        $key = $this->bankKey;
        $v_oid = 'CIP' . $order_id;
        $v_amount = number_format($order->get_order_total() - $order->get_total_discount(), 2, '.', '');
        //支付金额
        $v_moneytype = "CNY";
        //币种
        $text = $v_amount . $v_moneytype . $v_oid . $v_mid . $v_url . $key;
        //md5加密拼凑串,注意顺序不能变
        $v_md5info = strtoupper(md5($text));
        //md5函数加密并转化成大写字母
        $remark1 = '';
        //备注字段1
        $remark2 = '';
        //备注字段2
        $v_rcvname = '';
        // 收货人
        $v_rcvaddr = '';
        // 收货地址
        $v_rcvtel = '';
        // 收货人电话
        $v_rcvpost = '';
        // 收货人邮编
        $v_rcvemail = '';
        // 收货人邮件
        $v_rcvmobile = '';
        // 收货人手机号
        $v_ordername = '';
        // 订货人姓名
        $v_orderaddr = '';
        // 订货人地址
        $v_ordertel = '';
        // 订货人电话
        $v_orderpost = '';
        // 订货人邮编
        $v_orderemail = '';
        // 订货人邮件
        $v_ordermobile = '';
        // 订货人手机号
        $html_text = '
	<form method="post" name="E_FORM" action="https://pay3.chinabank.com.cn/PayGate">
	<input type="hidden" name="v_mid"         value="' . $v_mid . '">
	<input type="hidden" name="v_oid"         value="' . $v_oid . '">
	<input type="hidden" name="v_amount"      value="' . $v_amount . '">
	<input type="hidden" name="v_moneytype"   value="' . $v_moneytype . '">
	<input type="hidden" name="v_url"         value="' . $v_url . '">
	<input type="hidden" name="v_md5info"     value="' . $v_md5info . '">
	<input type="hidden" name="remark1"       value="' . $remark1 . '">
	<input type="hidden" name="remark2"       value="' . $remark2 . '">
	</form>
	<script>document.E_FORM.submit();</script>';
        $output = "\r\n\t\t\t<html>\r\n\t\t    <head>\r\n\t\t\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n\t\t        <title>正在前往网银在线...</title>\r\n\t\t    </head>\r\n\t\t    <body><div  style='display:none'>{$html_text}</div>'</body></html>";
        echo $output;
        exit;
        return array('result' => 'success', 'redirect' => $output);
    }
开发者ID:proj-2014,项目名称:vlan247-test-wp2,代码行数:74,代码来源:ciphp-wc-chinabank.php

示例11: add_payment_details_parameters

 /**
  * Set up the payment details for a DoExpressCheckoutPayment or DoReferenceTransaction request
  *
  * @since 2.0.9
  * @param WC_Order $order order object
  * @param string $type the type of transaction for the payment
  * @param bool $use_deprecated_params whether to use deprecated PayPal NVP parameters (required for DoReferenceTransaction API calls)
  */
 protected function add_payment_details_parameters(WC_Order $order, $type, $use_deprecated_params = false)
 {
     $calculated_total = 0;
     $order_subtotal = 0;
     $item_count = 0;
     $order_items = array();
     // add line items
     foreach ($order->get_items() as $item) {
         $product = new WC_Product($item['product_id']);
         $order_items[] = array('NAME' => wcs_get_paypal_item_name($product->get_title()), 'DESC' => $this->get_item_description($item, $product), 'AMT' => $this->round($order->get_item_subtotal($item)), 'QTY' => !empty($item['qty']) ? absint($item['qty']) : 1, 'ITEMURL' => $product->get_permalink());
         $order_subtotal += $item['line_total'];
     }
     // add fees
     foreach ($order->get_fees() as $fee) {
         $order_items[] = array('NAME' => wcs_get_paypal_item_name($fee['name']), 'AMT' => $this->round($fee['line_total']), 'QTY' => 1);
         $order_subtotal += $fee['line_total'];
     }
     // add discounts
     if ($order->get_total_discount() > 0) {
         $order_items[] = array('NAME' => __('Total Discount', 'woocommerce-subscriptions'), 'QTY' => 1, 'AMT' => -$this->round($order->get_total_discount()));
     }
     if ($this->skip_line_items($order)) {
         $total_amount = $this->round($order->get_total());
         // calculate the total as PayPal would
         $calculated_total += $this->round($order_subtotal + $order->get_cart_tax()) + $this->round($order->get_total_shipping() + $order->get_shipping_tax());
         // offset the discrepency between the WooCommerce cart total and PayPal's calculated total by adjusting the order subtotal
         if ($total_amount !== $calculated_total) {
             $order_subtotal = $order_subtotal - ($calculated_total - $total_amount);
         }
         $item_names = array();
         foreach ($order_items as $item) {
             $item_names[] = sprintf('%1$s x %2$s', $item['NAME'], $item['QTY']);
         }
         // add a single item for the entire order
         $this->add_line_item_parameters(array('NAME' => sprintf(__('%s - Order', 'woocommerce-subscriptions'), get_option('blogname')), 'DESC' => wcs_get_paypal_item_name(implode(', ', $item_names)), 'AMT' => $this->round($order_subtotal + $order->get_cart_tax()), 'QTY' => 1), 0, $use_deprecated_params);
         // add order-level parameters
         //  - Do not sent the TAXAMT due to rounding errors
         if ($use_deprecated_params) {
             $this->add_parameters(array('AMT' => $total_amount, 'CURRENCYCODE' => $order->get_order_currency(), 'ITEMAMT' => $this->round($order_subtotal + $order->get_cart_tax()), 'SHIPPINGAMT' => $this->round($order->get_total_shipping() + $order->get_shipping_tax()), 'INVNUM' => WCS_PayPal::get_option('invoice_prefix') . wcs_str_to_ascii(ltrim($order->get_order_number(), _x('#', 'hash before the order number. Used as a character to remove from the actual order number', 'woocommerce-subscriptions'))), 'PAYMENTACTION' => $type, 'PAYMENTREQUESTID' => $order->id, 'CUSTOM' => json_encode(array('order_id' => $order->id, 'order_key' => $order->order_key))));
         } else {
             $this->add_payment_parameters(array('AMT' => $total_amount, 'CURRENCYCODE' => $order->get_order_currency(), 'ITEMAMT' => $this->round($order_subtotal + $order->get_cart_tax()), 'SHIPPINGAMT' => $this->round($order->get_total_shipping() + $order->get_shipping_tax()), 'INVNUM' => WCS_PayPal::get_option('invoice_prefix') . wcs_str_to_ascii(ltrim($order->get_order_number(), _x('#', 'hash before the order number. Used as a character to remove from the actual order number', 'woocommerce-subscriptions'))), 'PAYMENTACTION' => $type, 'PAYMENTREQUESTID' => $order->id, 'CUSTOM' => json_encode(array('order_id' => $order->id, 'order_key' => $order->order_key))));
         }
     } else {
         // add individual order items
         foreach ($order_items as $item) {
             $this->add_line_item_parameters($item, $item_count++, $use_deprecated_params);
             $calculated_total += $this->round($item['AMT'] * $item['QTY']);
         }
         // add shipping and tax to calculated total
         $calculated_total += $this->round($order->get_total_shipping()) + $this->round($order->get_total_tax());
         $total_amount = $this->round($order->get_total());
         // add order-level parameters
         if ($use_deprecated_params) {
             $this->add_parameters(array('AMT' => $total_amount, 'CURRENCYCODE' => $order->get_order_currency(), 'ITEMAMT' => $this->round($order_subtotal), 'SHIPPINGAMT' => $this->round($order->get_total_shipping()), 'TAXAMT' => $this->round($order->get_total_tax()), 'INVNUM' => WCS_PayPal::get_option('invoice_prefix') . wcs_str_to_ascii(ltrim($order->get_order_number(), _x('#', 'hash before the order number. Used as a character to remove from the actual order number', 'woocommerce-subscriptions'))), 'PAYMENTACTION' => $type, 'PAYMENTREQUESTID' => $order->id, 'CUSTOM' => json_encode(array('order_id' => $order->id, 'order_key' => $order->order_key))));
         } else {
             $this->add_payment_parameters(array('AMT' => $total_amount, 'CURRENCYCODE' => $order->get_order_currency(), 'ITEMAMT' => $this->round($order_subtotal), 'SHIPPINGAMT' => $this->round($order->get_total_shipping()), 'TAXAMT' => $this->round($order->get_total_tax()), 'INVNUM' => WCS_PayPal::get_option('invoice_prefix') . wcs_str_to_ascii(ltrim($order->get_order_number(), _x('#', 'hash before the order number. Used as a character to remove from the actual order number', 'woocommerce-subscriptions'))), 'PAYMENTACTION' => $type, 'PAYMENTREQUESTID' => $order->id, 'CUSTOM' => json_encode(array('order_id' => $order->id, 'order_key' => $order->order_key))));
         }
         // offset the discrepency between the WooCommerce cart total and PayPal's calculated total by adjusting the cost of the first item
         if ($total_amount !== $calculated_total) {
             $this->parameters['L_PAYMENTREQUEST_0_AMT0'] = $this->parameters['L_PAYMENTREQUEST_0_AMT0'] - ($calculated_total - $total_amount);
         }
     }
 }
开发者ID:DustinHartzler,项目名称:TheCLEFT,代码行数:71,代码来源:class-wcs-paypal-reference-transaction-api-request.php

示例12: ConfirmPayment


//.........这里部分代码省略.........
              */
             foreach (WC()->cart->get_fees() as $fee) {
                 $Item = array('name' => $fee->name, 'desc' => '', 'amt' => number_format($fee->amount, 2, '.', ''), 'number' => $fee->id, 'qty' => 1, 'taxamt' => '', 'itemurl' => '', 'itemcategory' => '', 'itemweightvalue' => '', 'itemweightunit' => '', 'itemheightvalue' => '', 'itemheightunit' => '', 'itemwidthvalue' => '', 'itemwidthunit' => '', 'itemlengthvalue' => '', 'itemlengthunit' => '', 'ebayitemnumber' => '', 'ebayitemauctiontxnid' => '', 'ebayitemorderid' => '', 'ebayitemcartid' => '');
                 /**
                  * The gift wrap amount actually has its own parameter in
                  * DECP, so we don't want to include it as one of the line
                  * items.
                  */
                 if ($Item['number'] != 'gift-wrap') {
                     array_push($PaymentOrderItems, $Item);
                     $ITEMAMT += $fee->amount * $Item['qty'];
                 }
                 $ctr++;
             }
             if (!$this->is_wc_version_greater_2_3()) {
                 /*
                  * Get discounts
                  */
                 if ($order->get_cart_discount() > 0) {
                     foreach (WC()->cart->get_coupons('cart') as $code => $coupon) {
                         $Item = array('name' => 'Cart Discount', 'number' => $code, 'qty' => '1', 'amt' => '-' . number_format(WC()->cart->coupon_discount_amounts[$code], 2, '.', ''));
                         array_push($PaymentOrderItems, $Item);
                     }
                     $total_discount -= $order->get_cart_discount();
                 }
                 if ($order->get_order_discount() > 0) {
                     foreach (WC()->cart->get_coupons('order') as $code => $coupon) {
                         $Item = array('name' => 'Order Discount', 'number' => $code, 'qty' => '1', 'amt' => '-' . number_format(WC()->cart->coupon_discount_amounts[$code], 2, '.', ''));
                         array_push($PaymentOrderItems, $Item);
                     }
                     $total_discount -= $order->get_order_discount();
                 }
             } else {
                 if ($order->get_total_discount() > 0) {
                     $Item = array('name' => 'Total Discount', 'qty' => 1, 'amt' => -number_format($order->get_total_discount(), 2, '.', ''));
                     array_push($PaymentOrderItems, $Item);
                     $total_discount -= $order->get_total_discount();
                 }
             }
         }
         /*
          * Set shipping and tax values.
          */
         if (get_option('woocommerce_prices_include_tax') == 'yes') {
             $shipping = $order->get_total_shipping() + $order->get_shipping_tax();
             $tax = 0;
         } else {
             $shipping = $order->get_total_shipping();
             $tax = $order->get_total_tax();
         }
         if ('yes' === get_option('woocommerce_calc_taxes') && 'yes' === get_option('woocommerce_prices_include_tax')) {
             $tax = $order->get_total_tax();
         }
         if ($tax > 0) {
             $tax = number_format($tax, 2, '.', '');
         }
         if ($shipping > 0) {
             $shipping = number_format($shipping, 2, '.', '');
         }
         if ($total_discount) {
             $total_discount = round($total_discount, 2);
         }
         if ($this->send_items) {
             /*
              * Now that we have all items and subtotals
              * we can fill in necessary values.
开发者ID:EliasGoldberg,项目名称:troop-sim,代码行数:67,代码来源:wc-gateway-paypal-express-angelleye.php

示例13: do_reference_transaction

 /**
  * Charge a payment against a reference token
  *
  * @link https://developer.paypal.com/docs/classic/express-checkout/integration-guide/ECReferenceTxns/#id094UM0DA0HS
  * @link https://developer.paypal.com/docs/classic/api/merchant/DoReferenceTransaction_API_Operation_NVP/
  *
  * @param string $reference_id the ID of a refrence object, e.g. billing agreement ID.
  * @param WC_Order $order order object
  * @param array $args {
  *     @type string 'payment_type'         (Optional) Specifies type of PayPal payment you require for the billing agreement. It is one of the following values. 'Any' or 'InstantOnly'. Echeck is not supported for DoReferenceTransaction requests.
  *     @type string 'payment_action'       How you want to obtain payment. It is one of the following values: 'Authorization' - this payment is a basic authorization subject to settlement with PayPal Authorization and Capture; or 'Sale' - This is a final sale for which you are requesting payment.
  *     @type string 'return_fraud_filters' (Optional) Flag to indicate whether you want the results returned by Fraud Management Filters. By default, you do not receive this information.
  * }
  * @since 2.0
  */
 public function do_reference_transaction($reference_id, $order, $args = array())
 {
     $defaults = array('amount' => $order->get_total(), 'payment_type' => 'Any', 'payment_action' => 'Sale', 'return_fraud_filters' => 1, 'notify_url' => WC()->api_request_url('WC_Gateway_Paypal'), 'invoice_number' => wcs_str_to_ascii(ltrim($order->get_order_number(), _x('#', 'hash before the order number', 'woocommerce-subscriptions'))), 'custom' => json_encode(array('order_id' => $order->id, 'order_key' => $order->order_key)));
     $args = wp_parse_args($args, $defaults);
     $this->set_method('DoReferenceTransaction');
     // set base params
     $this->add_parameters(array('REFERENCEID' => $reference_id, 'BUTTONSOURCE' => 'WooThemes_Cart', 'RETURNFMFDETAILS' => $args['return_fraud_filters'], 'AMT' => $order->get_total(), 'CURRENCYCODE' => $order->get_order_currency(), 'INVNUM' => $args['invoice_number'], 'PAYMENTACTION' => $args['payment_action'], 'NOTIFYURL' => $args['notify_url'], 'CUSTOM' => $args['custom']));
     $order_subtotal = $i = 0;
     $order_items = array();
     // add line items
     foreach ($order->get_items() as $item) {
         $order_items[] = array('NAME' => wcs_get_paypal_item_name($item['name']), 'AMT' => $order->get_item_subtotal($item), 'QTY' => !empty($item['qty']) ? absint($item['qty']) : 1);
         $order_subtotal += $item['line_total'];
     }
     // add fees
     foreach ($order->get_fees() as $fee) {
         $order_items[] = array('NAME' => wcs_get_paypal_item_name($fee['name']), 'AMT' => $fee['line_total'], 'QTY' => 1);
         $order_subtotal += $fee['line_total'];
     }
     // WC 2.3+, no after-tax discounts
     if ($order->get_total_discount() > 0) {
         $order_items[] = array('NAME' => __('Total Discount', 'woocommerce-subscriptions'), 'QTY' => 1, 'AMT' => -$order->get_total_discount());
     }
     if ($order->prices_include_tax) {
         $item_names = array();
         foreach ($order_items as $item) {
             $item_names[] = sprintf('%s x %s', $item['NAME'], $item['QTY']);
         }
         // add a single item for the entire order
         $this->add_line_item_parameters(array('NAME' => sprintf(__('%s - Order', 'woocommerce-subscriptions'), get_option('blogname')), 'DESC' => wcs_get_paypal_item_name(implode(', ', $item_names)), 'AMT' => $order_subtotal + $order->get_cart_tax(), 'QTY' => 1), 0);
         // add order-level parameters - do not send the TAXAMT due to rounding errors
         $this->add_payment_parameters(array('ITEMAMT' => $order_subtotal + $order->get_cart_tax(), 'SHIPPINGAMT' => $order->get_total_shipping() + $order->get_shipping_tax()));
     } else {
         // add individual order items
         foreach ($order_items as $item) {
             $this->add_line_item_parameters($item, $i++);
         }
         // add order-level parameters
         $this->add_payment_parameters(array('ITEMAMT' => $order_subtotal, 'SHIPPINGAMT' => $order->get_total_shipping(), 'TAXAMT' => $order->get_total_tax()));
     }
 }
开发者ID:ltdat287,项目名称:id.nhomdichvu,代码行数:56,代码来源:class-wcs-paypal-reference-transaction-api-request.php

示例14: successful_request

 /**
  * After the payment method and validation data from transparent-checkout.php this method is called
  * to send the real payment information to gerencianet
  * 
  * Also this method handle with notifications of any status of the payment
  *
  * @param array $posted gerencianet post data.
  *
  * @return void
  */
 public function successful_request($posted)
 {
     //If the IPN request is about notification
     if (!empty($posted['notificacao'])) {
         try {
             include_once 'gerencianet-api/ApiCheckoutGerencianet.php';
             $url = 'https://go.gerencianet.com.br/api/notificacao/xml';
             $apiGerenciaNet = new ApiCheckoutGerencianet($url);
             $token = $this->token;
             $notification_code = $posted['notificacao'];
             $parametros = array($notification_code => 'notificacao');
             $result = $apiGerenciaNet->consultarStatusPagamento($parametros, $token);
             $result = simplexml_load_string($result);
             $order = new WC_Order($result->resposta->identificador);
             if (!empty($order)) {
                 $status = $result->resposta->status;
                 switch ($status) {
                     case 'aguardando':
                         $order->update_status('pending', __('Waiting Payment nº ') . $result->resposta->transacao);
                         break;
                     case 'pago':
                         $order->update_status('completed', __('All payment process completed transaction nº ') . $result->resposta->transacao);
                         break;
                     case 'cancelado':
                         $order->update_status('cancelled', __('Order cancelled transaction nº ') . $result->resposta->transacao);
                         break;
                     case 'vencido':
                         $order->update_status('failed', __('Order failed transaction nº ') . $result->resposta->transacao);
                         break;
                     default:
                         //no action
                         break;
                 }
                 if ('yes' == $this->debug) {
                     $this->log->add('gerencianet', 'changing status order ' . $order->get_order_number());
                 }
             } else {
                 if ('yes' == $this->debug) {
                     $this->log->add('gerencianet', 'changing status order error ' . $e->getMessage());
                 }
             }
         } catch (Exception $e) {
             if ('yes' == $this->debug) {
                 $this->log->add('gerencianet', 'changing status order error ' . $e->getMessage());
             }
         }
         exit;
     }
     //if the IPN request is about payment
     if (!empty($posted['tokenPagamento'])) {
         try {
             include_once 'gerencianet-api/ApiCheckoutGerencianet.php';
             $order = new WC_Order($posted['outros']['wc_order_id']);
             // Payment URL or Sandbox URL.
             $payment_url = 'https://go.gerencianet.com.br/api/checkout/pagar/xml';
             if ('yes' == $this->sandbox) {
                 $payment_url = 'https://go.gerencianet.com.br/teste/api/checkout/pagar/xml';
             }
             $apiGerenciaNet = new ApiCheckoutGerencianet($payment_url);
             $token = $this->token;
             $tokenPagamento = $posted['tokenPagamento'];
             $order_items = $order->get_items();
             $items = array();
             foreach ($order_items as $items_key => $item) {
                 $items[] = array("itemDescricao" => $item['name'], "itemValor" => $this->price_cents_format($item['line_total'] / $item['qty']), "itemQuantidade" => $item['qty']);
             }
             $retorno = array('identificador' => $posted['outros']['wc_order_id'], 'urlNotificacao' => home_url('/?wc-api=WC_Gerencianet'));
             $client = $posted['cliente'];
             $enderecoEntrega = $posted['enderecoEntrega'];
             //forma de entrega
             $formaEntrega = array();
             if ($posted['metodo'] == 'boleto') {
                 $date = $order->order_date;
                 $date = date_create($date);
                 date_add($date, date_interval_create_from_date_string($this->billet_number_days . ' days'));
                 $formaEntrega['boleto'] = array('vencimento' => date_format($date, 'Y-m-d'));
             } else {
                 if ($posted['metodo'] == 'cartao-credito') {
                     $parcelas = $posted['formaPagamento']['cartao']['parcelas'];
                     $formaEntrega['cartao'] = array('parcelas' => $parcelas, 'enderecoCobranca' => $enderecoEntrega);
                 }
             }
             $parametros = array('itens' => $items, 'retorno' => $retorno, 'desconto' => $this->price_cents_format($order->get_total_discount()), 'frete' => $this->price_cents_format($order->get_total_shipping()), 'tipo' => 'produto', 'cliente' => $client, 'enderecoEntrega' => $enderecoEntrega, 'formaPagamento' => $formaEntrega);
             $result = $apiGerenciaNet->pagar($parametros, $token, $tokenPagamento);
             $result = simplexml_load_string($result);
             $result->redirect = $posted['outros']['wc_redirect'];
             $result->tokenPagamento = $tokenPagamento;
             echo json_encode($result);
             if ('yes' == $this->debug) {
                 $this->log->add('gerencianet', 'Sending payment ' . print_r($parametros, true) . ' token =>' . $token . ' tokenPagamento => ' . $tokenPagamento);
//.........这里部分代码省略.........
开发者ID:braising,项目名称:woo-gerencianet,代码行数:101,代码来源:class-wc-gerencianet-gateway.php

示例15: bp_course_enable_access

function bp_course_enable_access($order_id)
{
    $order = new WC_Order($order_id);
    $items = $order->get_items();
    $user_id = $order->user_id;
    $order_total = $order->get_total();
    $total_discount = $order->get_total_discount();
    $commission_array = array();
    foreach ($items as $item_id => $item) {
        $instructors = array();
        $product_id = $item['product_id'];
        $subscribed = get_post_meta($product_id, 'vibe_subscription', true);
        $courses = vibe_sanitize(get_post_meta($product_id, 'vibe_courses', false));
        if ($total_discount) {
            $multiplier = round($order_total / ($order_total + $total_discount), 4);
        }
        if (isset($courses) && is_array($courses)) {
            if (vibe_validate($subscribed)) {
                $duration = get_post_meta($product_id, 'vibe_duration', true);
                $product_duration_parameter = apply_filters('vibe_product_duration_parameter', 86400);
                // Product duration for subscription based
                foreach ($courses as $course) {
                    $start_date = get_post_meta($course, 'vibe_start_date', true);
                    $time = 0;
                    if (isset($start_date) && $start_date) {
                        $time = strtotime($start_date);
                    }
                    if ($time < time()) {
                        $time = time();
                    }
                    $t = $time + $duration * $product_duration_parameter;
                    update_post_meta($course, $user_id, 0);
                    update_user_meta($user_id, $course, $t);
                    update_user_meta($user_id, 'course_status' . $course, 1);
                    $group_id = get_post_meta($course, 'vibe_group', true);
                    if (isset($group_id) && $group_id != '' && is_numeric($group_id) && function_exists('groups_join_group')) {
                        groups_join_group($group_id, $user_id);
                    } else {
                        $group_id = '';
                    }
                    $durationtime = $duration . ' ' . calculate_duration_time($product_duration_parameter);
                    if ($duration == '9999') {
                        $durationtime = __('Unlimited Duration', 'vibe');
                    }
                    do_action('wplms_course_subscribed', $course, $user_id, $group_id);
                    $instructors[$course] = apply_filters('wplms_course_instructors', get_post_field('post_author', $course), $course);
                    do_action('wplms_course_product_puchased', $course, $user_id, $t, 1);
                }
            } else {
                if (isset($courses) && is_array($courses)) {
                    foreach ($courses as $course) {
                        $duration = get_post_meta($course, 'vibe_duration', true);
                        $course_duration_parameter = apply_filters('vibe_course_duration_parameter', 86400);
                        // Course duration for subscription based
                        $start_date = get_post_meta($course, 'vibe_start_date', true);
                        $time = 0;
                        if (isset($start_date) && $start_date) {
                            $time = strtotime($start_date);
                        }
                        if ($time < time()) {
                            $time = time();
                        }
                        $t = $time + $duration * $course_duration_parameter;
                        update_post_meta($course, $user_id, 0);
                        update_user_meta($user_id, $course, $t);
                        update_user_meta($user_id, 'course_status' . $course, 1);
                        $group_id = get_post_meta($course, 'vibe_group', true);
                        if (isset($group_id) && $group_id != '' && is_numeric($group_id) && function_exists('groups_join_group')) {
                            groups_join_group($group_id, $user_id);
                        } else {
                            $group_id = '';
                        }
                        $durationtime = $duration . ' ' . calculate_duration_time($product_duration_parameter);
                        if ($duration == '9999') {
                            $durationtime = __('Unlimited Duration', 'vibe');
                        }
                        do_action('wplms_course_subscribed', $course, $user_id, $group_id);
                        $instructors[$course] = apply_filters('wplms_course_instructors', get_post_field('post_author', $course, 'raw'), $course);
                        do_action('wplms_course_product_puchased', $course, $user_id, $t, 0);
                    }
                }
            }
            //End Else
            if ($total_discount) {
                // Product discounted
                $line_total = round($item['line_total'] * $multiplier, 2);
            } else {
                $line_total = $item['line_total'];
            }
            //Commission Calculation
            $commission_array[$item_id] = array('instructor' => $instructors, 'course' => $courses, 'total' => $line_total);
        }
        //End If courses
    }
    // End Item for loop
    if (function_exists('vibe_get_option')) {
        $instructor_commission = vibe_get_option('instructor_commission');
    }
    if ($instructor_commission == 0) {
        return;
//.........这里部分代码省略.........
开发者ID:Nguyenkain,项目名称:Elearning,代码行数:101,代码来源:bp-course-actions.php


注:本文中的WC_Order::get_total_discount方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。