2016-07-24 3 views
0

Woocommerce 후크를 사용하여 주문 확인 메시지를 보내는 Wordpress에 SMS API를 추가하려고합니다. 몇 가지 조사를 한 후에, 나는 같은 방법으로 작동하는 다음 코드 here을 발견했다. 제공wordpress에 javascript API를 추가하는 방법 function.php

add_action('woocommerce_payment_complete', 'custom_process_order', 10, 1); 
function custom_process_order($order_id) { 
//Lets get data about the order made 
$order = new WC_Order($order_id); 

//Now will fetch customer/buyer id here 
$customer_id = $order->user_id; 

//now finally we fetch phone number 
$billing_phone = get_user_meta($customer_id, 'billing_phone', true); 

// Now put your HTTP SMS API URL . I PUT WHICH WE ARE USING 
$jsonurl = "http://tsms.thirdeyegoa.com/api/sendmsg.php?user=USERNAME&pass=PASSWORD&sender=MYSENDERID&phone=".$billing_phone."&priority=ndnd&stype=normal&text=MY MESSAGE TO CUSTOMER."; 

// NOW WILL CALL FUNCTION CURL 
$json = curl($jsonurl); 

return $order_id; 
} 

API를 코드 내 SMS 게이트웨이는

// Include provided Java Script 

<script language="javascript" src="https://domainapi.js" type="text/javascript"> </script> 
<script language="javascript"> 

// Replace your API key at below line 

var apikey = 'ABCDEFGH1234567890abcdefghQWERTY123='; 

// Form your data object 

var mail_details = { email : '[email protected]', msgid : '82', listname : '', prefix : '', firstname : 'John', middlename : '', lastname : 'Doe', telephone : '', address : '', city : '', state : '', pincode : '', country : '', mobile : '9999999999', designation : '', company : '', companyphone : '', birthdate : '', anniversary : '', extra1 : '', extra2 : '' } 

call_api(apikey, 'sendSingleSMS', mail_details, function(response) { document.getElementById('show').innerHTML=response; });</script> 

어떻게 워드 프레스에 대한 위의 스크립트에서이 API를 통합하는 방법을 가르쳐주세요입니다.

+1

귀하의 질문에 자세한 내용을 설명해주십시오 : 그것은 wp_localize_script()에 의해 생성 된 자바 스크립트 객체 Your_JS_Object을 활용합니다. functions.php에 코드를 붙여 넣고 자바 스크립트 코드를 제공하면 함께 작동하는 파일이 두 개 표시되지 않습니까? –

+0

안녕하세요. 조사 해 주셔서 감사합니다 .... 주문을 할 때 [이] (http://docs.juvlon.com/api/sendTransSms.html#sendSingleSMS) api를 내 Woocommerce 상점에 추가하려고합니다. 완전한. 어떻게 할 수 있니? @ Quỳnh Nguyễn – user3475163

+0

그것은 sms 게이트웨이 문서가 제안하는 방법입니다. [이 API 문서] (http://docs.juvlon.com/api/sendTransSms.html#sendSingleSMS)를 확인하십시오. @LoicTheAztec – user3475163

답변

0

아마도 여러분은 API 스크립트를 "WordPress 방법"에 혼합하고 WooCommerce의 명령에서 일부 데이터를로드하려고합니다. 먼저 기본 플러그인 파일에 스크립트를 등록하려고합니다.

add_action('wp_enqueue_scripts', 'so_38554614_enqueue_scripts'); 
function so_38554614_enqueue_scripts(){ 
    wp_register_script('your-api', 'https://domainapi.js', array(), '1.0', true); 
    wp_register_script('your-script', 'path-to-your-script.js', array('your-api'), '1.0', true); 
} 

그런 다음 결제 완료 페이지에 스크립트를로드하려고합니다. wp_localize_script()을 이용하여 스크립트에 일부 변수를 전달하고자 할 수도 있습니다.

add_action('woocommerce_payment_complete', 'custom_process_order', 10, 1); 
function custom_process_order($order_id) { 
    //Lets get data about the order made 
    $order = new WC_Order($order_id); 

    wp_enqueue_script('your-api'); 
    wp_enqueue_script('your-script'); 

    $l18n = array('mail_details'=> 
       array( 
        email' => $order->billing_email, 
        'msgid' => 82, 
        'listname' => '', 
        'firstname' => $order->billing_first_name, 
        'middlename' => '', 
        'lastname' => $order->billing_last_name, 
        'telephone' => $order->billing_phone, 
        'address'= >$order->billing_address_1 . ' ' . $order->billing_address_2, 
        'city' => $order->billing_city, 
        'state' => $order->billing_state, 
        'pincode' => '', 
        'country' => $order->billing_country, 
        'mobile' => $order->billing_phone 
        'designation' => '', 
        'company' => $order->billing_company, 
        'companyphone' => '', 
        'birthdate' => '', 
        'anniversary' => '', 
        'extra1' => '', 
        'extra2' => '' 
       ), 
       'apikey' => 'ABCDEFGH1234567890abcdefghQWERTY123='); 

    wp_localize_script('your-script', 'Your_JS_Object', $l18n); 

    wp_localize_script() 

    return $order_id; 
} 

마지막으로, 플러그인의 어딘가에 저장된 javascript 파일.

// Java Script path-to-your-script.js 
call_api(Your_JS_Object.apikey, 'sendSingleSMS', Your_JS_Object.mail_details, function(response) { document.getElementById('show').innerHTML=response; }); 
+0

고마워요, wp_register_script ('your-script', 'path-to-your-script.js', 배열 ('your-api'), '1.0', true); ' 이 코드는 플러그인 등록을위한 것입니까? @helgatheviking – user3475163

+0

['wp_register_script()'] (https://developer.wordpress.org/reference/functions/wp_register_script/)에 대한 설명서를 참조하십시오. 이것은 플러그인에서 스크립트를로드하는 올바른 방법입니다. – helgatheviking

+0

저는 Wordpress를 처음 사용하기 시작했습니다. Wordpress 파일을 위의 3 가지 코드 모두에 배치해야한다고 말씀해 주시겠습니까? @helgatheviking – user3475163

관련 문제