Your order qualifies for free shipping!

Remove item Thumbnail image Product Price Quantity Subtotal
× TOYOTA 04475-35040Repair Kit, brake caliper
Supplier:

Mama

Availability:

3

KSh 37.58
KSh 37.58
× BOSCH 1 987 946 316Timing Belt Set
Supplier:

Mama

Availability:

120

KSh 4,533.21
KSh 4,533.21
× BOSCH 0 986 475 718Wheel Brake Cylinder
Supplier:

Mama

Availability:

97

KSh 1,327.56
KSh 1,327.56
× Placeholder TOYOTA #13505-50030Tensioner Pulley, timing belt
Supplier:

Mama

Availability:

5296

KSh 1,171.83
KSh 1,171.83
× Dayco KTB259Timing Belt Set
Supplier:

Baba

Availability:

40

KSh 4,367.15
KSh 4,367.15
× BOSCH 0 986 452 028Oil Filter
EDD: Sunday, October 4, 2026
Supplier:

Baba

Delivery:

45 days

Availability:

120

KSh 257.14
KSh 257.14
× Trucktec Automotive 83.04.008Hose Connector
Supplier:

Baba

Availability:

2

KSh 233.63
KSh 233.63
× Meyle 100 611 0055Wheel Brake Cylinder
EDD: Friday, August 21, 2026
Supplier:

Baba

Delivery:

1

Availability:

20

KSh 2,860.79
KSh 2,860.79
× Febest 0229-003Camber Correction Screw
Supplier:

Baba

Availability:

70

KSh 372.51
KSh 372.51
× Delphi TC3043Track Control Arm
Supplier:

Baba

Availability:

4

KSh 15,578.31
KSh 15,578.31
Remove All

Cart totals

Subtotal KSh 30,739.71
Shipping

Shipping to Nairobi County.

Change address
Total KSh 30,739.71
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);
});