<?php /** * Plugin Name: Site Assistant * Description: Provides guided onboarding and a Site Assistant in the WordPress admin. * Version: 1.0.0 * Update URI: false */ define('EXTENDIFY_PARTNER_ID', 'ion8dhas7'); define('EXTENDIFY_SHOW_ONBOARDING', get_option('stylesheet') === 'extendable'); define('EXTENDIFY_INSIGHTS_URL', 'https://insights.extendify.com'); /************************************* *! Do not make changes below this line *************************************/ /** Insights */ if (! wp_next_scheduled('extendify_insights')) { if (get_option('extendify_insights_stop', false)) { return; } wp_schedule_event(current_time('timestamp'), 'daily', 'extendify_insights'); } add_action('extendify_insights', [new ExtendifyInsights, 'run']); class ExtendifyInsights { public $domain; public function __construct() { if (!defined('EXTENDIFY_INSIGHTS_URL')) { return; } $url = trailingslashit(EXTENDIFY_INSIGHTS_URL) . 'api/v1/insights'; $this->domain = apply_filters('extendify_insights_url', $url); $this->showRestEndpoint(); $this->trackLogins(); } public function run() { if (! $this->domain || ! $siteId = get_option('extendify_site_id', false)) { return; } $tourData = get_option('extendify_assist_tour_progress', ['state' => []]); $tourData = isset($tourData['state']['progress']) ? $tourData['state']['progress'] : []; $data = apply_filters('extendify_insights_data', [ 'site' => $this->getSiteData(), 'pages' => $this->getPageData(), 'plugins' => get_option('active_plugins'), 'tourData' => $tourData, ]); $response = wp_remote_post($this->domain, [ 'headers' => [ 'Content-Type' => 'application/json', 'X-Extendify-Site-Id' => $siteId, ], 'timeout' => 3, 'body' => wp_json_encode($data), ]); if (! is_wp_error($response)) { $data = json_decode(wp_remote_retrieve_body($response), true); if (isset($data['stop'])) { update_option('extendify_insights_stop', true); wp_clear_scheduled_hook('extendify_insights'); } } } private function getSiteData() { global $wpdb; $partner = defined('EXTENDIFY_PARTNER_ID') ? EXTENDIFY_PARTNER_ID : null; if (! $partner && isset($GLOBALS['extendify_sdk_partner'])) { $partner = $GLOBALS['extendify_sdk_partner']; } $devBuild = defined('EXTENDIFY_PATH') ? is_readable(EXTENDIFY_PATH . 'public/build/.devbuild') : null; $media = $wpdb->get_row("SELECT COUNT(ID) as count FROM {$wpdb->posts} WHERE post_type = 'attachment'"); $users = count_users(); // Home page $response = wp_remote_get(home_url(), [ 'timeout' => 1, ]); $home = ! is_wp_error($response) ? wp_remote_retrieve_body($response) : ''; $siteType = get_option('extendify_siteType', ''); $siteType = isset($siteType['slug']) ? $siteType['slug'] : ''; $tasksData = get_option('extendify_assist_tasks', ['state' => []]); $tasksData = isset($tasksData['state']) ? $tasksData['state'] : []; return [ 'title' => get_bloginfo('name'), 'description' => get_bloginfo('description'), 'url' => home_url(), 'restEndpoint' => rest_url(), 'adminUrl' => admin_url(), 'adminUsers' => $users['avail_roles']['administrator'], 'users' => $users['total_users'], 'homeUrls' => $this->getUrlsFromContent(preg_replace('#<head>(.*?)</head>#is', '', $home)), 'mediaLibraryCount' => $media->count, 'wpVersion' => get_bloginfo('version'), 'language' => get_bloginfo('language'), 'siteLogo' => get_option('site_logo', 0), 'loginTotals' => get_option('extendify_login_count', 0), 'siteType' => $siteType, 'theme' => get_option('stylesheet', ''), 'favicon' => $this->getFaviconHash(), 'partner' => $partner, 'isDev' => $devBuild, 'completedTasks' => isset($tasksData['completedTasks']) ? $tasksData['completedTasks'] : [], ]; } private function getPageData() { $pageData = []; $pages = get_posts([ 'posts_per_page' => -1, 'post_status' => ['trash', 'publish', 'any'], 'post_type' => 'page', 'date_query' => [ [ 'column' => 'post_modified_gmt', 'after' => '24 hours ago', ] ], ]); foreach ($pages as $page) { $revisions = wp_get_post_revisions($page->ID, [ 'posts_per_page' => -1, 'date_query' => [ [ 'column' => 'post_modified_gmt', 'after' => '24 hours ago', ] ], ]); $pageData[] = [ 'ID' => $page->ID, 'usedLaunch' => filter_var(get_post_meta($page->ID, 'made_with_extendify_launch', true), FILTER_VALIDATE_BOOLEAN), 'name' => $page->post_name, 'title' => $page->post_title, 'status' => $page->post_status, 'date' => $page->post_date_gmt, 'hasExtendifyPattern' => strpos($page->post_content, 'ext-') !== false, 'hasUnsplashImage' => strpos($page->post_content, 'unsplash') !== false, 'template' => get_page_template_slug($page->ID), 'pageUrls' => $this->getUrlsFromContent($page->post_content), 'pageEmails' => $this->getEmailsFromContent($page->post_content), 'revisions' => array_map(function (WP_Post $pageRevision) { return [ 'ID' => $pageRevision->ID, 'name' => $pageRevision->post_name, 'status' => $pageRevision->post_status, 'title' => $pageRevision->post_title, 'date' => $pageRevision->post_date_gmt, 'hasExtendifyPattern' => strpos($pageRevision->post_content, 'ext-') !== false, 'hasUnsplashImage' => strpos($pageRevision->post_content, 'unsplash') !== false, 'pageUrls' => $this->getUrlsFromContent($pageRevision->post_content), 'pageEmails' => $this->getEmailsFromContent($pageRevision->post_content), ]; }, $revisions), ]; } return $pageData; } private function showRestEndpoint() { add_filter('rest_route_data', function (array $available) { unset($available['/extendify-insights']); return $available; }); add_filter('rest_index', function (WP_REST_Response $response) { $response->data['routes'] = array_filter($response->data['routes'], function ($key) { return strpos($key, 'extendify-insights') === false; }, ARRAY_FILTER_USE_KEY); $response->data['namespaces'] = array_values( array_filter($response->data['namespaces'], function ($value) { return strpos($value, 'extendify-insights') === false; }) ); return $response; }); add_action('rest_api_init', function () { register_rest_route('extendify-insights', 'active', [ 'methods' => 'GET', 'permission_callback' => '__return_true', 'show_in_index' => false, 'callback' => function (WP_REST_Request $request) { // Just to hide it from anyone fuzzing endpoints if ($request->get_param('token') === 'o9vbeXa88iwuYvzTQQcQ6ZCfXZny1zYPKaz3SaeL') { return true; } // Return the same response WP uses when the route isnt registered return new WP_Error( 'rest_no_route', 'No route was found matching the URL and request method.', ['status' => 404] ); }, ]); }); } private function trackLogins() { add_action('wp_login', function () { $count = get_option('extendify_login_count'); update_option('extendify_login_count', intval($count) + 1); }); } private function getUrlsFromContent($content) { preg_match_all('#\bhttps?://[^,\s()<>]+(?:\([\w\d]+\)|([^,[:punct:]\s]|/))#', $content, $urls); return array_values(array_unique( array_filter($urls[0], function ($url) { return ! preg_match( "/w3\.org|schema\.org|wordpress.org|w.org|wp-json|unsplash|\.(svg|png|jpe?g|js|css|xml|php)/", $url ); }) )); } private function getEmailsFromContent($content) { preg_match_all('#\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b#i', $content, $emails); return array_values(array_unique($emails[0])); } private function getFaviconHash() { $response = wp_remote_get('https://s2.googleusercontent.com/s2/favicons?domain=' . home_url()); if (! is_wp_error($response)) { return md5(wp_remote_retrieve_body($response)); } return null; } } 800kg Heavy Duty Shelving UK | Metal Shelving Guide - RackingOutlet

800kg Heavy Duty Shelving UK

800kg heavy duty shelving is designed for buyers who need stronger storage than ordinary household shelves. It is suitable for UK garages, workshops, stockrooms, warehouses and trade units where boxes, tools, equipment or stock need to be stored safely and efficiently.

RackingOutlet supplies heavy duty metal shelving with up to 800kg total capacity per unit when loaded correctly. To check stock, pricing and collection details, message us directly on WhatsApp.

Message RackingOutlet on WhatsApp about 800kg shelving

What does 800kg capacity mean?

Capacity describes the amount of weight a shelving unit is designed to support when assembled and loaded correctly. For an 800kg unit, the total capacity is usually spread across the shelves rather than placed in one single point. Buyers should always distribute weight evenly and place heavier items lower down.

For example, a shelving bay used for boxes, tools or stock should be loaded in a balanced way across each tier. Avoid overloading one shelf, leaning weight against the frame or placing unstable items high up.

Where 800kg shelving is useful

Heavy duty shelving is useful in garages, workshops, retail stockrooms, warehouses, trade counters and storage rooms. It can help organise tools, cartons, parts, supplies, packaging, cleaning products and general business stock.

For small businesses, better shelving can also improve stock visibility. When products are stored clearly, it is easier to count inventory, pick orders and keep walkways clear.

Metal shelving vs lightweight shelving

Lightweight shelving can be fine for small household items, but it may not be suitable for heavy tools, stock boxes or commercial use. Metal shelving is a better choice when you need more strength, better durability and a more practical storage system for repeated use.

Our main shelving product is listed here: Heavy Duty Metal Shelving – 800kg Capacity.

How to order 800kg shelving from RackingOutlet

RackingOutlet uses direct WhatsApp enquiries so customers can confirm the right product before ordering. Send us your storage requirements, quantity, space measurements and any collection questions. We can then confirm the most suitable option and availability.

You can also read our Heavy Duty Shelving Buying Guide for more help before choosing.

Frequently asked questions

Is 800kg shelving suitable for a garage?

Yes, 800kg heavy duty shelving can be suitable for garage storage if it fits the space and is loaded correctly. It is useful for tools, boxes, equipment and household overflow.

Does 800kg mean each shelf holds 800kg?

No. The total capacity and per-tier capacity should be checked for the specific unit. Weight should be spread evenly across the shelving and heavy items should be placed lower down.

Can I use heavy duty shelving in a warehouse?

Yes, heavy duty metal shelving can be used in warehouses and stockrooms for hand-loaded goods, boxes, tools and general stock. It is not the same as pallet racking.

How do I order?

Message RackingOutlet on WhatsApp with your requirements. We can confirm stock, price, quantity and collection details before you order.