From woocommerce-commerce
Builds WooCommerce shipping methods—WC_Shipping_Method, zones, classes, rate calculations, tracking, carrier integrations—for custom shipping logic.
npx claudepluginhub orcaqubits/agentic-commerce-skills-plugins --plugin woocommerce-commerceThis skill is limited to using the following tools:
**Fetch live docs**:
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Fetch live docs:
site:developer.woocommerce.com shipping method api for shipping method guidewoocommerce custom shipping method tutorial for implementation patternshttps://woocommerce.github.io/code-reference/classes/WC-Shipping-Method.html for class referenceGeographic regions that determine available shipping methods:
Product-level classification for rate customization:
All custom shipping methods extend WC_Shipping_Method:
| Property | Description |
|---|---|
$id | Unique method identifier |
$method_title | Admin-facing title |
$method_description | Admin-facing description |
$title | Customer-facing title |
$enabled | Whether method is enabled |
$instance_id | Zone instance ID |
$supports | Supported features array |
Filter woocommerce_shipping_methods:
add_filter( 'woocommerce_shipping_methods', function( $methods ) {
$methods['my_shipping'] = 'My_Shipping_Method';
return $methods;
});
__construct( $instance_id ) — set $id, $method_title, $supports, initialize settingsinit_form_fields() — define settings fields (flat rate, per-item, per-class)calculate_shipping( $package ) — compute rates and add via $this->add_rate()Receives $package array containing:
contents — cart items in this packagedestination — shipping address (country, state, postcode, city)cart_subtotal — package subtotalReturns rates via $this->add_rate():
$this->add_rate( [
'id' => $this->get_rate_id(),
'label' => $this->title,
'cost' => $calculated_cost,
'taxes' => '', // empty = auto-calculate, 'false' = tax-free
'calc_tax' => 'per_order', // or 'per_item'
'package' => $package,
]);
For zone-based configuration (per-zone settings):
$this->instance_form_fields instead of $this->form_fields'instance-settings' and 'instance-settings-modal' to $this->supportsCart items grouped for shipping calculation:
woocommerce_cart_shipping_packages to split items into multiple packages$package = [
'contents' => [ /* cart items */ ],
'contents_cost' => 50.00,
'applied_coupons' => [],
'destination' => [
'country' => 'US',
'state' => 'CA',
'postcode' => '90210',
'city' => 'Beverly Hills',
],
];
Fixed cost regardless of cart contents. Optionally add per-item or per-class surcharges.
Calculate from total package weight:
$item['data']->get_weight() * $item['quantity'] for all itemsComplex rate calculation based on combinations of weight, item count, destination, and price. Often implemented with rate tables stored in custom DB tables.
Call carrier APIs (UPS, FedEx, USPS, DHL):
Store tracking info as order meta:
$order->update_meta_data( '_tracking_number', $number )$order->update_meta_data( '_tracking_provider', $carrier )Built-in WC_Shipping_Free_Shipping — enable based on:
Fetch the WooCommerce shipping method documentation for exact method signatures, package format, and instance settings patterns before implementing.