Link woocommerce with asp .net web application
-
0
down vote
favorite
Is there a way to connect the wordpress website to an external asp .net web application? I have a woocommerce platform where hotel booking is enabled. But the date picker & payment gateway integration is done in a separate .NET web application. I want to link the woocommerce website to the .NET application and send the date of particular product details to the application & make the transactions there.Would anyone be able to guide me in connecting to the SQL database of the .NET application & send the data from woocommerce products to that particular application?
I found the code in another blog as to how to do this but I’m not sure whether it is the right approach.
/* after an order has been processed, we will use the 'woocommerce_thankyou' hook, to add our function, to send the data */ add_action('woocommerce_thankyou', 'wdm_send_order_to_ext'); function wdm_send_order_to_ext( $order_id ){ // get order object and order details $order = new WC_Order( $order_id ); $email = $order->billing_email; $phone = $order->billing_phone; $shipping_type = $order->get_shipping_method(); $shipping_cost = $order->get_total_shipping(); // set the address fields $user_id = $order->user_id; $address_fields = array('country', 'title', 'first_name', 'last_name', 'company', 'address_1', 'address_2', 'address_3', 'address_4', 'city', 'state', 'postcode'); $address = array(); if(is_array($address_fields)){ foreach($address_fields as $field){ $address['billing_'.$field] = get_user_meta( $user_id, 'billing_'.$field, true ); $address['shipping_'.$field] = get_user_meta( $user_id, 'shipping_'.$field, true ); } } // get coupon information (if applicable) $cps = array(); $cps = $order->get_items( 'coupon' ); $coupon = array(); foreach($cps as $cp){ // get coupon titles (and additional details if accepted by the API) $coupon[] = $cp['name']; } // get product details $items = $order->get_items(); $item_name = array(); $item_qty = array(); $item_price = array(); $item_sku = array(); foreach( $items as $key => $item){ $item_name[] = $item['name']; $item_qty[] = $item['qty']; $item_price[] = $item['line_total']; $item_id = $item['product_id']; $product = new WC_Product($item_id); $item_sku[] = $product->get_sku(); } /* for online payments, send across the transaction ID/key. If the payment is handled offline, you could send across the order key instead */ $transaction_key = get_post_meta( $order_id, '_transaction_id', true ); $transaction_key = empty($transaction_key) ? $_GET['key'] : $transaction_key; // set the username and password $api_username = 'testuser'; $api_password = 'testpass'; // to test out the API, set $api_mode as ‘sandbox’ $api_mode = 'sandbox'; if($api_mode == 'sandbox'){ // sandbox URL example $endpoint = "https://sandbox.example.com/"; } else{ // production URL example $endpoint = "https://example.com/"; } // setup the data which has to be sent $data = array( 'apiuser' => $api_username, 'apipass' => $api_password, 'customer_email' => $email, 'customer_phone' => $phone, 'bill_firstname' => $address['billing_first_name'], 'bill_surname' => $address['billing_last_name'], 'bill_address1' => $address['billing_address_1'], 'bill_address2' => $address['billing_address_2'], 'bill_city' => $address['billing_city'], 'bill_state' => $address['billing_state'], 'bill_zip' => $address['billing_postcode'], 'ship_firstname' => $address['shipping_first_name'], 'ship_surname' => $address['shipping_last_name'], 'ship_address1' => $address['shipping_address_1'], 'ship_address2' => $address['shipping_address_2'], 'ship_city' => $address['shipping_city'], 'ship_state' => $address['shipping_state'], 'ship_zip' => $address['shipping_postcode'], 'shipping_type' => $shipping_type, 'shipping_cost' => $shipping_cost, 'item_sku' => implode(',', $item_sku), 'item_price' => implode(',', $item_price), 'quantity' => implode(',', $item_qty), 'transaction_key' => $transaction_key, 'coupon_code' => implode( ",", $coupon ) ); // send API request via cURL $ch = curl_init(); /* set the complete URL, to process the order on the external system. Let’s consider https://example.com/buyitem.php is the URL, which invokes the API */ curl_setopt($ch, CURLOPT_URL, $endpoint."buyitem.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec ($ch); curl_close ($ch); // the handle response if (strpos($response,'ERROR') !== false) { print_r($response); } else { // success } }
P.S. I have guest checkout enabled in the wordpress website but I have a login for the application. The application is running on an external database & the connection to that should be made.
Thanks in advance!
- The topic ‘Link woocommerce with asp .net web application’ is closed to new replies.