Your order qualifies for free shipping!

Remove item Thumbnail image Product Price Quantity Subtotal
× BOSCH 0 414 701 105Pump and Nozzle Unit
EDD: Sunday, October 4, 2026
Supplier:

Baba

Delivery:

45 days

Availability:

120

KSh 26,042.86
KSh 26,042.86
× Placeholder MAZDA D001-26-03ZRepair Kit, wheel brake cylinder
Supplier:

Baba

Availability:

1

KSh 990.08
KSh 990.08
× Placeholder TOYOTA 9043012005Seal Ring, oil drain plug
Supplier:

Mama

Availability:

1788

KSh 14.70
KSh 14.70
× TOYOTA 4757002090Wheel Brake Cylinder
Supplier:

Mama

Availability:

1

KSh 1,133.86
KSh 1,133.86
× BOSCH 0 241 140 522Spark Plug
EDD: Saturday, August 29, 2026
Supplier:

Kaka

Delivery:

9days

Availability:

120

KSh 347.62
KSh 347.62
× BOSCH 0 445 020 023High Pressure Pump
EDD: Saturday, August 29, 2026
Supplier:

Kaka

Delivery:

9days

Availability:

110

KSh 44,520.06
KSh 44,520.06
× BOSCH 0 986 345 110Brake Light Switch
Supplier:

Mama

Availability:

120

KSh 1,587.17
KSh 1,587.17
Remove All

Cart totals

Subtotal KSh 74,636.35
Shipping

Shipping to Nairobi County.

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