0
0
Wordpressframework~5 mins

Shipping configuration in Wordpress

Choose your learning style9 modes available
Introduction

Shipping configuration helps you set how products get delivered to customers. It controls costs, methods, and rules for shipping.

You want to charge customers different shipping fees based on location.
You need to offer multiple shipping methods like standard or express.
You want to set free shipping for orders over a certain amount.
You want to restrict shipping to certain countries or regions.
You want to add handling fees or special shipping rules.
Syntax
Wordpress
function my_custom_shipping_method_init() {
  class WC_My_Shipping_Method extends WC_Shipping_Method {
    public function __construct() {
      $this->id = 'my_shipping_method';
      $this->method_title = __('My Shipping Method');
      $this->method_description = __('Custom shipping method description.');
      $this->enabled = 'yes';
      $this->title = 'My Shipping';
      $this->init();
    }

    function init() {
      // Load settings
      $this->init_form_fields();
      $this->init_settings();
      add_action('woocommerce_update_options_shipping_' . $this->id, array($this, 'process_admin_options'));
    }

    public function calculate_shipping($package = array()) {
      $rate = array(
        'id' => $this->id,
        'label' => $this->title,
        'cost' => '10.00',
        'calc_tax' => 'per_item'
      );
      $this->add_rate($rate);
    }
  }
}

add_action('woocommerce_shipping_init', 'my_custom_shipping_method_init');

function add_my_shipping_method($methods) {
  $methods['my_shipping_method'] = 'WC_My_Shipping_Method';
  return $methods;
}

add_filter('woocommerce_shipping_methods', 'add_my_shipping_method');

This example shows how to create a custom shipping method in WooCommerce.

Use hooks like woocommerce_shipping_init and filters like woocommerce_shipping_methods to add your method.

Examples
This adds the built-in flat rate shipping method to WooCommerce shipping methods.
Wordpress
add_filter('woocommerce_shipping_methods', function($methods) {
  $methods['flat_rate'] = 'WC_Shipping_Flat_Rate';
  return $methods;
});
This calculates shipping cost differently based on the destination country.
Wordpress
function calculate_shipping($package = array()) {
  $cost = 5.00;
  if ($package['destination']['country'] === 'US') {
    $cost = 3.00;
  }
  $rate = array(
    'id' => 'custom_shipping',
    'label' => 'Custom Shipping',
    'cost' => $cost
  );
  $this->add_rate($rate);
}
Sample Program

This code creates a simple custom shipping method called "My Shipping" with a fixed cost of $7.50. It registers the method so WooCommerce can use it during checkout.

Wordpress
<?php
// Add this code to your theme's functions.php or a custom plugin

function my_custom_shipping_method_init() {
  class WC_My_Shipping_Method extends WC_Shipping_Method {
    public function __construct() {
      $this->id = 'my_shipping_method';
      $this->method_title = __('My Shipping Method');
      $this->method_description = __('Custom shipping method for demonstration.');
      $this->enabled = 'yes';
      $this->title = 'My Shipping';
      $this->init();
    }

    function init() {
      $this->init_form_fields();
      $this->init_settings();
      add_action('woocommerce_update_options_shipping_' . $this->id, array($this, 'process_admin_options'));
    }

    public function calculate_shipping($package = array()) {
      $cost = 7.50; // fixed cost
      $rate = array(
        'id' => $this->id,
        'label' => $this->title,
        'cost' => $cost,
        'calc_tax' => 'per_order'
      );
      $this->add_rate($rate);
    }
  }
}

add_action('woocommerce_shipping_init', 'my_custom_shipping_method_init');

function add_my_shipping_method($methods) {
  $methods['my_shipping_method'] = 'WC_My_Shipping_Method';
  return $methods;
}

add_filter('woocommerce_shipping_methods', 'add_my_shipping_method');
?>
OutputSuccess
Important Notes

Always test shipping methods on a staging site before using on a live store.

Shipping costs can be dynamic based on weight, location, or other rules.

WooCommerce provides built-in shipping methods you can enable without coding.

Summary

Shipping configuration controls how products get delivered and charged.

You can add custom shipping methods using WooCommerce hooks and classes.

Test your shipping setup to ensure customers see correct options and prices.