Creating a WooCommerce shipping plugin is fairly straightforward, and can be done with a few simple steps. Firstly, you’ll need to create a plugin folder and file structure within your WooCommerce installation.
Within this folder, create a plugin file called shipping.php and add the following code:
<?php
/* Plugin Name: Shipping */
WooCommerce\plugins\ shipping\ shipping.php
Next, you’ll need to create a function that will handle the shipping process. Within your plugin file, add the following code:
function shipping() {
// Get the shipping info
var shippingInfo = WooCommerce\plugins\ shipping\ shippingInfo();
// Create the shipping container
var shippingContainer = shippingInfo->shipments[0];
// Set the shipping destination
var shippingDestination = shippingInfo->shipments[1];
// Add the shipping details
var shippingDetails = WooCommerce\plugins\ shipping\ shippingDetails();
// Add the shipping cost
var shippingCost = shippingInfo->shipments[0]->price * shippingInfo->shipments[1]->price;
// Add the shipping status
var shippingStatus = shippingInfo->shipments[0]->status;
// Add the shipping notes
var shippingNotes = shippingInfo->shipments[0]->note;
// Save the shipping info
WooCommerce\plugins\ shipping\ shippingInfo()->save();
This function will need to be called from the WooCommerce checkout process. Within your functions.php file, add the following code:
function checkout() {
// Check the shipping information
if ( shippingInfo ) {
// Get the shipping cost
// Get the shipping status
// Get the shipping notes
This function will be called from the checkout process, and willui switch between the shipping information contained within the shipping Info object. In order to create your plugin, you’ll first need to create a custom post type called ‘Shipping’. Within the ‘Shipping’ post type, you’ll need to create a few fields:
- Name – This will be the name of your plugin
- Description – This will be a brief description of your plugin
- Version – This will be the version of your plugin
- Author – This will be the author of your plugin
- License – This will be the license of your plugin
- Files – This will be a list of the files contained within your plugin
- Install Instructions – This will be the installation instructions for your plugin
Once you’ve created these fields, you’ll need to create a template file called shipping.tpl. This template file will be used to generate the front-end of your plugin, and should include the following sections:
- Installation Instructions – This will be the installation instructions for your plugin
- Plugin Information – This will be the information about your plugin, including the name, description, version, author, and license
- Plugin Files – This will be a list of the files contained within your plugin
- Credits – This will be a list of the people responsible for developing and supporting your plugin
- Terms of Use – This will be the terms of use for your plugin
- Social Media Links – This will be a list of the social media links for your plugin
- Contact Form – This will be the contact form for your plugin
Once you’ve created your template file, you’ll need to generate the front-end of your plugin. Within your plugin folder, create a folder called ‘resources’. Within this folder, create a folder called ‘images’. Within this folder, create a folder called ‘templates’.
Within this folder, create a file called shipping. This file should include the following content:.
<!--
header {
width: 100%;
margin: 0 auto;
padding: 0;
-->
body {
background-color: #eee;
.WooCommerce-shipping-container {
width: 80%;
margin: 0 auto;
padding: 20px;
background-color: #fff;
border: 1px solid #ccc;
}
.WooCommerce-shipping-header {
text-align: center;
font-size: 24px;
font-weight: bold;
margin-bottom: 20px;
}
.WooCommerce-shipping-form {
margin-bottom: 20px;
}
.WooCommerce-shipping-form label {
display: block;
margin-bottom: 10px;
}
.WooCommerce-shipping-form input[type="text"], .WooCommerce-shipping-form select {
width: 100%;
padding: 12px 20px;
margin: 8px 0;
box-sizing: border-box;
border: 1px solid #ccc;
border-radius: 4px;
}
.WooCommerce-shipping-form input[type="submit"] {
width: 100%;
background-color: #4CAF50;
color: white;
padding: 14px 20px;
margin: 8px 0;
border: none;
border-radius: 4px;
cursor: pointer;
}
.WooCommerce-shipping-form input[type="submit"]:hover {
background-color: #45a049;
}