php – 在wocoommerce中过滤货币并将其从usd转换为inr for ccave
发布时间:2020-12-13 22:25:45 所属栏目:PHP教程 来源:网络整理
导读:我在wordpress网站上使用ccavenue支付网关. 插件网址为 https://wordpress.org/plugins/ccavenue-payment-gateway-woocommerce/ 但我有一个问题,我的基础货币是inr和ccavenue只接受inr付款,所以当用户将货币切换到usd然后ccavenue将40美元作为inr40. 我想在
我在wordpress网站上使用ccavenue支付网关.
插件网址为 https://wordpress.org/plugins/ccavenue-payment-gateway-woocommerce/ 但我有一个问题,我的基础货币是inr和ccavenue只接受inr付款,所以当用户将货币切换到usd然后ccavenue将40美元作为inr40. 我想在转换到ccavenue页面之前转换货币. 相同的代码片段是. public function generate_ccavenue_form($order_id){ global $woocommerce; $order = new WC_Order($order_id); $redirect_url = ($this -> redirect_page_id=="" || $this -> redirect_page_id==0)?get_site_url() . "/":get_permalink($this -> redirect_page_id); //For wooCoomerce 2.0 $redirect_url = add_query_arg( 'wc-api',get_class( $this ),$redirect_url ); $order_id = $order_id.'_'.date("ymds"); $checksum = $this -> getCheckSum($this -> merchant_id,$order->order_total,$order_id,$redirect_url,$this -> working_key); $ccavenue_args = array( 'Merchant_Id' => $this -> merchant_id,'Amount' => $order->order_total,'Order_Id' => $order_id,'Redirect_Url' => $redirect_url,'Checksum' => $checksum,'currency_code' => get_woocommerce_currency(),'billing_cust_name' => $order -> billing_first_name .' '. $order -> billing_last_name,'billing_cust_address' => $order -> billing_address_1,'billing_cust_country' => $order -> billing_country,'billing_cust_state' => $order -> billing_state,'billing_cust_city' => $order -> billing_city,'billing_zip' => $order -> shipping_postcode,'billing_cust_tel' => $order -> billing_phone,'billing_cust_email' => $order -> billing_email,'delivery_cust_name' => $order -> shipping_first_name .' '. $order -> shipping_last_name,'delivery_cust_address' => $order -> shipping_address_1,'delivery_cust_country' => $order -> shipping_country,'delivery_cust_state' => $order -> shipping_state,'delivery_cust_tel' => $order -> shipping_phone,'delivery_cust_notes' => '','Merchant_Param' => '','billing_zip_code' => $order -> billing_postcode,'delivery_cust_city' => $order -> shipping_city,'delivery_zip_code' => $order -> shipping_postcode ); $ccavenue_args_array = array(); foreach($ccavenue_args as $key => $value){ $ccavenue_args_array[] = "<input type='hidden' name='$key' value='$value'/>"; } 我想我必须在function.php中为此添加一个过滤器钩子. 解决方法
您可以使用Google API进行货币兑换.
您必须在woocommcerce中放置一些自定义函数来实时转换货币,因为CCavenue不支持INR,因此您必须先转换为USD,然后将此变量金额发送到CCavenue表单. 使用您想要的相应操作将以下代码添加到functions.php中. <?php $from_currency = 'USD'; $to_currency = 'INR'; $amount = 1; $results = converCurrency($from_currency,$to_currency,$amount); $regularExpression = '#&;span class=bld&;(.+?)&;/span&;#s'; preg_match($regularExpression,$results,$finalData); echo $finalData[0]; function converCurrency($from,$to,$amount){ $url = "http://www.google.com/finance/converter?a=$amount&from=$from&to=$to"; $request = curl_init(); $timeOut = 0; curl_setopt ($request,CURLOPT_URL,$url); curl_setopt ($request,CURLOPT_RETURNTRANSFER,1); curl_setopt ($request,CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)"); curl_setopt ($request,CURLOPT_CONNECTTIMEOUT,$timeOut); $response = curl_exec($request); curl_close($request); return $response; } ?> 希望这对你有所帮助.如果有效,请投票.在此先感谢您的投票. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |