October 5, 2014

UPS Shipping Rate Calculation API – Part 1


R
 ecently, I was working on the ups shipping rate calculation API. It was an e-commerce site using UPS Shipping service delivering its order.

First of all working with UPS shipping rate calculation API is simple. You first need to register yourself on ups site. You will get username, password and API key and UPS account number.

Now create a file with ‘ups_shipping_process.php’ name, and put following code in it.
<?php
class upsRate {
var $AccessLicenseNumber;
var $UserId;
var $Password;
var $shipperNumber;
var $credentials;
function setCredentials($access,$user,$pass,$shipper) {
$this->AccessLicenseNumber = $access;
$this->UserID = $user;
$this->Password = $pass;
$this->shipperNumber = $shipper;
$this->credentials = 1;
}
// Define the function getRate() - no parameters
function getRate($PostalCode,$dest_zip,$service,$length,$width,$height,$weight) {
if ($this->credentials != 1) {
print 'Please set your credentials with the setCredentials function';
die();
}
$data ="<?xml version=\"1.0\"?>
<AccessRequest xml:lang=\"en-US\">
<AccessLicenseNumber>$this->AccessLicenseNumber</AccessLicenseNumber>
<UserId>$this->UserID</UserId>
<Password>$this->Password</Password>
</AccessRequest>
<?xml version=\"1.0\"?>
<RatingServiceSelectionRequest xml:lang=\"en-US\">
<Request>
<TransactionReference>
<CustomerContext>Bare Bones Rate Request</CustomerContext>
<XpciVersion>1.0001</XpciVersion>
</TransactionReference>
<RequestAction>Rate</RequestAction>
<RequestOption>Rate</RequestOption>
</Request>
<PickupType>
<Code>01</Code>
</PickupType>
<Shipment>
<Shipper>
<Address>
<PostalCode>$PostalCode</PostalCode>
<CountryCode>US</CountryCode>
</Address>
<ShipperNumber>$this->ShipperNumber</ShipperNumber>
</Shipper>
<ShipTo>
<Address>
<PostalCode>$dest_zip</PostalCode>
<CountryCode>US</CountryCode>
<ResidentialAddressIndicator/>
</Address>
</ShipTo>
<ShipFrom>
<Address>
<PostalCode>$PostalCode</PostalCode>
<CountryCode>US</CountryCode>
</Address>
</ShipFrom>
<Service>
<Code>$service</Code>
</Service>
<Package>
<PackagingType>
<Code>02</Code>
</PackagingType>
<Dimensions>
<UnitOfMeasurement>
<Code>IN</Code>
</UnitOfMeasurement>
<Length>$length</Length>
<Width>$width</Width>
<Height>$height</Height>
</Dimensions>
<PackageWeight>
<UnitOfMeasurement>
<Code>LBS</Code>
</UnitOfMeasurement>
<Weight>$weight</Weight>
</PackageWeight>
</Package>
</Shipment>
</RatingServiceSelectionRequest>";
$ch = curl_init("https://www.ups.com/ups.app/xml/Rate");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_TIMEOUT, 60);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$result=curl_exec ($ch);
//  echo '<!-- '. $result. ' -->'; // THIS LINE IS FOR DEBUG PURPOSES ONLY-IT WILL SHOW IN HTML COMMENTS
$data = strstr($result, '<?');
$xml_parser = xml_parser_create();
xml_parse_into_struct($xml_parser, $data, $vals, $index);
xml_parser_free($xml_parser);
$params = array();
$level = array();
foreach ($vals as $xml_elem) {
if ($xml_elem['type'] == 'open') {
if (array_key_exists('attributes',$xml_elem)) {
list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
} else {
$level[$xml_elem['level']] = $xml_elem['tag'];
}
}
if ($xml_elem['type'] == 'complete') {
$start_level = 1;
$php_stmt = '$params';
while($start_level < $xml_elem['level']) {
$php_stmt .= '[$level['.$start_level.']]';
$start_level++;
}
$php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
eval($php_stmt);
}
}
curl_close($ch);
return $params['RATINGSERVICESELECTIONRESPONSE']['RATEDSHIPMENT']['TOTALCHARGES']['MONETARYVALUE'];
}
}
?>
 </pre>
</div>
<div class="MsoNormal">
Then create another file with `calculate_shipping_cost_ups.php`
and put following code in it.</div>
<div class="MsoNormal">
  <pre class="language-php">
     <?php
          require_once("ups_shipping_process.php");
          $ups = new upsRate();
          $ups->setCredentials(UPS_ACCOUNT_KEY,UPS_USERNAME, UPS_PASSWORD, UPS_ACCOUNT_NO);
          $result    = $ups->getRate($from_zip,$destination_zip,$services,$length,$width,$height,$weight);
          echo "Shipping Rate: ".$result;
     ?>
 
Then create another file with `calculate_shipping_cost_ups.php` and put following code in it.
     <?php
          require_once("ups_shipping_process.php");
          $ups = new upsRate();
          $ups->setCredentials(UPS_ACCOUNT_KEY,UPS_USERNAME, UPS_PASSWORD, UPS_ACCOUNT_NO);
          $result    = $ups->getRate($from_zip,$destination_zip,$services,$length,$width,$height,$weight);
          echo "Shipping Rate: ".$result;
     ?>
  
Set your credentials you got from UPS registration by calling ‘setCredentials()’ method, Replacing UPS_ACCOUNT_KEY, UPS_USERNAME, UPS_PASSWORD, UPS_ACCOUNT_NO with your real information.
You can set your Country, ZIP code, and measurement UNIT (i.e.  LBS or KG for weight and IN for dimension)
Below are the option for the shipping method, you might wants to use in your for user selection.
01 – UPS Next Day Air

02 – UPS Second Day Air

03 – UPS Ground

07 – UPS Worldwide Express

08 – UPS Worldwide Expedited

11 – UPS Standard

12 – UPS Three-Day Select

13 – Next Day Air Saver

14 – UPS Next Day Air Early AM

54 – UPS Worldwide Express Plus

59 – UPS Second Day Air AM

65 – UPS Saver
For Advance Configuration of the UPS Shipping Rate Calculation visit:

May 16, 2014

WordPress interview questions and answers

What is the Difference Between Posts vs. Pages

Posts vs. Pages
* Posts are timely vs. Pages are timeless.
* Posts are social vs. Pages are NOT.
* Posts can be categorized vs. Pages are hierarchical.
* Posts are included in RSS feed vs. Pages are not.
* Pages have custom template feature vs. Posts do not.

April 17, 2014

Create an Access token for twitter.



Have you ever caught up in a situation like you need to show the tweets on your website, for that you’ve created an application in dev.twitter.com but you don’t know where the hell is access token and access secret?

April 14, 2014

Extract images and text from post content WordPress

Hey There, Ever had a post with lots of images in it and you wanted text and images displayed separately from the post content?
Well, before a week ago I got exactly same situation where I need to display images from post content on the top and the text under it. It was a blog page of the site and showing excerpt there.
Showing the text only without image wasn’t difficult. I applied this php code and it’s done.

 echo substr(preg_replace('/<img />]+./','',$post->post_content),0,350); 
But extracting the images especially multiple from post content and showing them on the top of the blog entry was a little bit tricky part of this job.
So, what I did to extract images from post content is put this code where I need images to be displayed
  

March 29, 2014

Pagination with special recent post Plugin


Today, I'm going to show you how to add pagination with Special recent post Plugin.
If you are using special recent post plugin to show recent posts in your blog website.
You might have stuck with pagination problem i.e. what If you have 100 post and you want to show 10 posts per page?

I've made some custom changes in the special recent post plugin to made it work with pagination.
Follow these instructions to add pagination.
First we need to set the plugin is fetching the posts from the database so we need to set the offset option into the queries option so we can say what page number is requested and fetching from number of post up to 10 or whatever post you need to show in one page.
Go to the "special recent posts"  plugin now go to class directory of it. You'll find a file

class-main.php

Open it.

February 20, 2014

WordPress Plugin - Sidebar Pages Menu



Follow these very simple steps to Show menu in the sidebar of your WordPress.


  1. Log into WordPress admin area of your site.
  2. First install this Siebar Menu Widget  Plugin.
  3. Now Go to menu and create a new menu and then add the page you want to display in sidebar.
  4. Now go to widget area drag and drop the menu in the sidebar and select the menu from drop down.
That’s all. It’s that simple.

If you like this post you can like, share or comment. Subscribe the blog to get regular update on many web development articles and latest technology news.

October 12, 2013

Points of SEO

The Basics
If your website isn’t properly optimized on-page, your efforts off the website (link building, content marketing, social media) probably won’t yield substantial results. Not that they won’t generate anything at all, but more than half your efforts may end up going down the drain.
There’s no clear rule book that says: do X, Y, and Z in on-page optimization and your rank will rise by A, B, or C. On-page optimization is based on tests, analytics and errors. You learn more about it by discovering what doesn’t work than what does.

Kindle Apps