Your order qualifies for free shipping!

Remove item Thumbnail image Product Price Quantity Subtotal
× BOSCH 0 986 452 028Oil Filter
Supplier:

Mama

Availability:

113

KSh 635.24
KSh 3,811.44
× TOYOTA 9020108106Seal Ring, oil drain plug
Supplier:

Mama

Availability:

380

KSh 16.34
KSh 65.36
× Febi Bilstein 39086Track Control Arm
Supplier:

Baba

Availability:

2

KSh 3,682.59
KSh 7,365.18
× BOSCH F 026 407 221Oil Filter
EDD: Sunday, August 30, 2026
Supplier:

Kaka

Delivery:

9days

Availability:

120

KSh 98.41
KSh 196.82
× BOSCH 0 414 799 015Pump and Nozzle Unit
Supplier:

Mama

Availability:

18

KSh 65,342.86
KSh 130,685.72
× Febest 0125-190LTrack Control Arm
Supplier:

Baba

Availability:

70

KSh 2,426.20
KSh 2,426.20
× Febest 0375-CLRRepair Kit, brake caliper
Supplier:

Baba

Availability:

60

KSh 263.04
KSh 526.08
× Denso 2603400500Oil Filter
EDD: Monday, August 31, 2026
Supplier:

Mama

Delivery:

10

Availability:

100

KSh 459.15
KSh 459.15
× BOSCH 0 986 437 351High Pressure Pump
EDD: Sunday, August 30, 2026
Supplier:

Kaka

Delivery:

9days

Availability:

110

KSh 45,538.29
KSh 91,076.58
× Placeholder Azumi A21197Air Filter
EDD: Saturday, August 22, 2026
Supplier:

Baba

Delivery:

1

Availability:

74

KSh 716.90
KSh 716.90
× Febi Bilstein 30125Pulley, water pump
Supplier:

Baba

Availability:

266

KSh 2,282.42
KSh 2,282.42
× TOYOTA 2362017010Nozzle Needle
Supplier:

Mama

Availability:

5

KSh 3,830.99
KSh 3,830.99
× TOYOTA 90980-11885Plug, coil
Supplier:

Mama

Availability:

4491

KSh 116.00
KSh 116.00
× Febi Bilstein 104351Brake Light Switch
Supplier:

Baba

Availability:

26

KSh 1,132.23
KSh 1,132.23
× Febi Bilstein 36060Track Control Arm
Supplier:

Baba

Availability:

5

KSh 4,791.94
KSh 4,791.94
Remove All

Cart totals

Subtotal KSh 249,483.01
Shipping

Shipping to Nairobi County.

Change address
Total KSh 249,483.01
Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
Click outside to hide the comparison bar
Compare
What are you looking for in PartZote?
<?php

add_action('init', function () {
    // Gmail-inspired custom statuses
    $statuses_to_add = [
        'requested' => ['label' => 'Requested', 'color' => '#e3f2fd'],
        'awaiting_confirmation' => ['label' => 'Awaiting Confirmation', 'color' => '#fff3e0'],
        'confirmed' => ['label' => 'Confirmed', 'color' => '#f1f8e9'],
        'in_transit' => ['label' => 'In Transit', 'color' => '#e8eaf6'],
        'arrived_locally' => ['label' => 'Arrived Locally', 'color' => '#ede7f6'],
        'splitted' => ['label' => 'Split Order', 'color' => '#f3e5f5'],
        'ready_to_pick' => ['label' => 'Ready to Pickup', 'color' => '#f0f4c3'],
        'ready_to_deliver' => ['label' => 'Ready to Deliver', 'color' => '#e0f7fa'],
        'partially_delivered' => ['label' => 'Partially Delivered', 'color' => '#fffde7'],
        'completed' => ['label' => 'Completed', 'color' => '#e8f5e9'],
        'returned' => ['label' => 'Returned', 'color' => '#fce4ec'],
        'cancelled' => ['label' => 'Cancelled', 'color' => '#fbe9e7'],
        'refunded' => ['label' => 'Refunded', 'color' => '#ede7f6'],
    ];

    // 1. Save or merge into custom_order_statuses option
    $existing = get_option('custom_order_statuses', []);
    $merged = $existing;

    foreach ($statuses_to_add as $slug => $data) {
        $label = $data['label'];
        $color = $data['color'];

        $merged[$slug] = ['label' => $label, 'color' => $color];

        // 2. Register as post status
        register_post_status('wc-' . $slug, [
            'label'                     => $label,
            'public'                    => true,
            'exclude_from_search'       => false,
            'show_in_admin_all_list'    => true,
            'show_in_admin_status_list' => true,
            'label_count'               => _n_noop("$label <span class='count'>(%s)</span>", "$label <span class='count'>(%s)</span>"),
        ]);
    }

    update_option('custom_order_statuses', $merged);
});

// 3. Register them into WooCommerce dropdowns
add_filter('wc_order_statuses', function ($statuses) {
    $custom = get_option('custom_order_statuses', []);
    foreach ($custom as $slug => $data) {
        $statuses['wc-' . $slug] = $data['label'];
    }
    return $statuses;
});

// 4. Ensure role_permissions has these labels set to TRUE
add_action('admin_init', function () {
    $custom = get_option('custom_order_statuses', []);
    $roles = ['administrator', 'shop_manager', 'wcfm_vendor', 'customer'];
    $role_permissions = get_option('role_permissions', []);

    foreach ($roles as $role) {
        if (!isset($role_permissions[$role])) $role_permissions[$role] = [];
        if (!isset($role_permissions[$role]['order_statuses'])) $role_permissions[$role]['order_statuses'] = [];

        foreach ($custom as $slug => $data) {
            $label = $data['label'];
            $role_permissions[$role]['order_statuses'][$label] = true;
        }
    }

    update_option('role_permissions', $role_permissions);
});