简体   繁体   English

将自定义短信 API 与 woocommerce 集成

[英]Integrating custom SMS API with woocommerce

So I have been working on a project to integrate custom SMS API with woocommerce and wc vendor plugins.因此,我一直致力于将自定义 SMS API 与 woocommerce 和 wc 供应商插件集成的项目。 Unfortunately, I didn't find any particular solution for this.不幸的是,我没有为此找到任何特定的解决方案。 Everyone was talking about some plugins who actually support existing gateways.每个人都在谈论一些实际支持现有网关的插件。 I was wondering what if someone wants to integrate own api with woocommerce!我想知道如果有人想将自己的 api 与 woocommerce 集成怎么办!

Finally, I have come up with own code which is given below.最后,我想出了自己的代码,如下所示。 The code goes to function.php in your child theme.代码转到您子主题中的 function.php。 FYKI, I had to use rawurlencode to encode the text message as some telcos require encoded message. FYKI,我不得不使用rawurlencode对文本消息进行编码,因为某些电信公司需要编码消息。

Thank you.谢谢。

Special thanks to: Integrating SMS api with woocommerce , Not sending messages特别感谢: 将短信 api 与 woocommerce 集成,不发送消息

//DYNAMIC ORDER MSG TO CUSTOMER 
add_action('woocommerce_order_status_processing', 'custom_msg_customer_process_order', 10, 3);

function custom_msg_customer_process_order ($order_id) {
//Lets get data about the order made
$order = new WC_Order($order_id);

//Now will fetch billing phone
$billing_phone = $order->get_billing_phone();
$billing_name = $order->get_billing_first_name();

$textmessage = rawurlencode("Dear $billing_name, Thank you for your order. Your order #$order_id is being processed. Please wait for confirmation call.");

// Now put HTTP SMS API URL
$url = "http://msms.THE_COMPANY.com/RequestSMS.php?user_name=YOUR_USER_NAME&pass_word=YOUR_PASSWORD&brand=YOUR_BRAND_NAME&type=1&destination=$billing_phone&sms=$textmessage";

// NOW WILL CALL FUNCTION CURL  
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);

return $order_id;
}

To integrate Datagen SMS API scripts into Wordpress Woocommerce without any plugins the just add Funcation.php Code into the Thousands of customers worldwide trust Datagen for sending millions of messages to their customers. 要将Datagen SMS API脚本集成到没有任何插件的Wordpress Woocommerce中,只需将Funcation.php代码添加到全球成千上万的客户中,相信Datagen可以向其客户发送数百万条消息。 The single SMS API integration service can transform your business and take it to great heights. 单一的SMS API集成服务可以改变您的业务并将其推向新的高度。 With it, you can target customers globally as SMS-enabled any application, system or website facilitate international two way messaging by shortcodes, long numbers and more. 有了它,您就可以在启用SMS的任何应用程序,系统或网站上通过短代码,长号等实现国际双向双向消息传递,从而在全球定位客户。

Dategen SMS API will Send Message whenever any purchase on site 无论何时在网站上购买商品,Dategen SMS API都会发送消息

Wordpress WooCommerce to send automatic order updates to customers mobiles whenever the make any purchase on site. 每当在网站上进行购买时,Wordpress WooCommerce都会向客户手机发送自动订单更新。

How to integrate sms api in wordpress woocommerce 如何在Wordpress woocommerce中集成SMS API

Two things you keep before you are going to setup this dataen API 在设置此dataen API之前,请注意两件事

auth Key
Sender ID

Now , You need to added this code to functions.php page 现在,您需要将此代码添加到functions.php页面

add_action('woocommerce_thankyou', 'send_sms_api', 10, 1);

function send_sms_api($billing_phone)
{   

$results = $GLOBALS['wpdb']->get_results("SELECT * FROM wp_postmeta WHERE post_id = $billing_phone AND meta_key IN ('_billing_phone')", OBJECT);

    $mobilenois=$results[0]->meta_value;    
$auth = "Enter Your Auth Key Here "; // add auth Key Here  
 $mobileNumber = $mobilenois;
$senderId = "Enter Send ID Here"; // add Sender ID 
$message = urlencode("Thannk you for order with us. "); // Add Message here 
$postData = array(
    'auth' => $auth,
    'msisdn' => $mobileNumber,
    'message' => $message,
    'senderid' => $senderId,
);
$url='http://sms.datagenit.in/API/sms-api.php';
$ch = curl_init();
curl_setopt_array($ch, array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $postData
    //,CURLOPT_FOLLOWLOCATION => true
));
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$output = curl_exec($ch);
if(curl_errno($ch))
{
    echo 'error:' . curl_error($ch);
}
curl_close($ch);
 $output;
}

https://datagenit.com/api-developer.php https://datagenit.com/api-developer.php

Free Technical Support : Call On +91-9999-706-864 or mail us : hello@datagenit.com 免费技术支持:致电+ 91-9999-706-864或向我们发送电子邮件:hello@datagenit.com

I recently had this challenge myself, I had found an easy way to send notification SMS messages from WooCommerce with a plugin but I needed something to send messages in my own way.我最近自己遇到了这个挑战,我找到了一种使用插件从 WooCommerce 发送通知 SMS 消息的简单方法,但我需要一些东西以自己的方式发送消息。

I ended up using the Twilio service along with their API, I wrote up this tutorial as to how you can get it all set up so hope it helps!我最终使用了 Twilio 服务和他们的 API,我写了这个教程来教你如何设置它,希望它有所帮助!

function wpcodetips_send_sms( $smsMessage , $contactNumber ){
// Change to your account SID
$accountSID = 'XXXXXXXXXXXXX'; 
// Change to your account Auth Key
$authKey = 'XXXXXXXXXXXXX';
// Change to your account trial number
$sendNumber = '+XXXXXXXXXXX';
// The Twilio API Url 
$url = "https://api.twilio.com/2010-04-01/Accounts/".$accountSID."/Messages.json";
// The data being sent to the API
$data = array(
            'From' => $sendNumber,
            'To' => $contactNumber,
            'Body' => $smsMessage
        ); 
// Set the authorisation header
$headers = array( 'Authorization' => 'Basic ' . base64_encode($accountSID . ':' . $authKey));
// Send the POST request and store the response in a variable
$result = wp_remote_post($url, array( 'body' => $data, 'headers' => $headers));
// Return the response body to ensure it has worked
return json_decode($result['body'], true);
}

https://www.wpcodetips.com/wordpress-tutorials/how-to-send-an-sms-from-wordpress-programmatically/ https://www.wpcodetips.com/wordpress-tutorials/how-to-send-an-sms-from-wordpress-programmatically/

Not sure if this helps anyone but I recently set up a woocommerce shop where the owners are not able to check their email for orders all day as they are out on the field.不确定这是否对任何人有帮助,但我最近开设了一家 woocommerce 商店,店主在外地时无法整天查看电子邮件以获取订单。

So with the mix of Hasan's and Gary's post right here I consolidated them into one to make a notification over SMS using Twilio when a new order comes in.因此,通过在这里混合 Hasan 和 Gary 的帖子,我将它们合并为一个,以便在有新订单时使用 Twilio 通过 SMS 发出通知。

Just add the below to your functions.php and replace the accountSID, authKey, SendNumber and contactNumber values.只需将以下内容添加到您的functions.php 并替换accountSID、authKey、SendNumber 和contactNumber 值。 And of course change the message to your preference.当然,根据您的喜好更改消息。

Tested it with special characters like ÅÄÖ as well and it worked.也用像 ÅÄÖ 这样的特殊字符对其进行了测试,结果奏效了。

//Send SMS Notification to admin
add_action('woocommerce_order_status_processing', 'send_woo_order_sms', 10, 3);

function send_woo_order_sms ($order_id){
    //Get order data
    $order = new WC_Order($order_id);
    //Get first name from order
    $billing_first_name = $order->get_billing_first_name();
    //Get last name from order
    $billing_last_name = $order->get_billing_last_name();
    // Change to your Twilio account SID
    $accountSID = 'xxxxxxxxxxxxxxxx';
    // Change to your Twilio account Auth Key
    $authKey = 'xxxxxxxxxxxxxxxx';
    // Change to your Twilio account number
    $sendNumber = '+xxxxxxxxxxxxxxxx';
    //Change to your verified caller number (receiver of the sms)
    $contactNumber = '+xxxxxxxxxxxxxxxx';
    //Message to send
    $smsMessage =  "$billing_first_name $billing_last_name has just placed an order. See order #$order_id.";
    // The Twilio API Url 
    $url = "https://api.twilio.com/2010-04-01/Accounts/".$accountSID."/Messages.json";
    // The data being sent to the API
    $data = array(
                'From' => $sendNumber,
                'To' => $contactNumber,
                'Body' => $smsMessage
            ); 
    // Set the authorisation header
    $headers = array( 'Authorization' => 'Basic ' . base64_encode($accountSID . ':' . $authKey));
    // Send the POST request and store the response in a variable
    $result = wp_remote_post($url, array( 'body' => $data, 'headers' => $headers));

    return $order_id;
}

I guess it could easily be changed to be sent out to the customer instead by changing the contactNumber to the billing phone.我想它可以很容易地更改为发送给客户,而不是通过将 contactNumber 更改为计费电话。

$contactNumber = $order->get_billing_phone();

This would however require a paid plan at Twilio.然而,这需要 Twilio 的付费计划。

Ufone pakistan sms integration with woocommerce wordpress Ufone 巴基斯坦短信与 woocommerce wordpress 集成

if you are looking for integration with ufone pakistan sms api bsms ufone pakistan service provider with woocommerce wordpress then use the following code in your functions file如果您正在寻找与 ufone pakistan sms api bsms ufone pakistan 服务提供商与 woocommerce wordpress 的集成,请在您的函数文件中使用以下代码

sms api integration ufone bsms with wordpress woocommerce thanks to the author on this page Integrating custom SMS API with woocommerce sms api 集成 ufone bsms 与 wordpress woocommerce 感谢本页上的作者将自定义 SMS API 与 woocommerce 集成

//add this line for calling your function on creation of order in woocommerce 
add_action('woocommerce_order_status_processing', 'custom_func', 10, 3);

function custom_func ($order_id) {

$order_details = new WC_Order($order_id);

//fetch all required fields
$billing_phone = $order_details->get_billing_phone();
$billing_name = $order_details->get_billing_first_name();
$billing_last_name = $order_details->get_billing_last_name();
$total_bill = $order_details->get_total();

$textmessage = rawurlencode("Dear $billing_name, Thank you for your order. Your order #$order_id is being processed. Please wait for confirmation call Total Bill = $total_bill");

// Now put HTTP ufone BSMS API URL
$url = "https://bsms.ufone.com/bsms_v8_api/sendapi-0.3.jsp?id=msisdn&message=$textmessage&shortcode=SHORTCODE&lang=English&mobilenum=$billing_phone&password=password&messagetype=Nontransactional";

// NOW WILL CALL FUNCTION CURL  
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);

return $order_id;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM