/car-organizer-magic-box-large-capacity-waterproof
Back to menu

Shipping Time: Shipping cost: US $0.00 US $0.00
Out of stock
View Cart
Ready to ship | Free shipping & returns
Product Description

<?php
/**
* Admin integration file.
*
* @package performance-lab
*/

// @codeCoverageIgnoreStart
if ( ! defined( ‘ABSPATH’ ) ) {
exit; // Exit if accessed directly.
}
// @codeCoverageIgnoreEnd

/**
* Adds the features page to the Settings menu.
*
* @since 1.0.0
* @since 3.0.0 Renamed to perflab_add_features_page().
*/
function perflab_add_features_page(): void {
$hook_suffix = add_options_page(
__( ‘Performance Features’, ‘performance-lab’ ),
__( ‘Performance’, ‘performance-lab’ ),
‘manage_options’,
PERFLAB_SCREEN,
‘perflab_render_settings_page’
);

// Add the following hooks only if the screen was successfully added.
if ( false !== $hook_suffix ) {
add_action( “load-{$hook_suffix}”, ‘perflab_load_features_page’, 10, 0 );
add_filter( ‘plugin_action_links_’ . plugin_basename( PERFLAB_MAIN_FILE ), ‘perflab_plugin_action_links_add_settings’ );
}
}

add_action( ‘admin_menu’, ‘perflab_add_features_page’ );

/**
* Initializes functionality for the features page.
*
* @since 1.0.0
* @since 3.0.0 Renamed to perflab_load_features_page(), and the
* $module and $hook_suffix parameters were removed.
*/
function perflab_load_features_page(): void {
// Handle script enqueuing for settings page.
add_action( ‘admin_enqueue_scripts’, ‘perflab_enqueue_features_page_scripts’ );

// Handle admin notices for settings page.
add_action( ‘admin_notices’, ‘perflab_plugin_admin_notices’ );

// Handle style for settings page.
add_action( ‘admin_head’, ‘perflab_print_features_page_style’ );
}

/**
* Renders the plugin page.
*
* @since 1.0.0
* @since 3.0.0 Renamed to perflab_render_settings_page().
*/
function perflab_render_settings_page(): void {
?>
<div class=”wrap”>
<?php perflab_render_plugins_ui(); ?>
</div>
<?php
}

/**
* Initializes admin pointer.
*
* Handles the bootstrapping of the admin pointer.
* Mainly jQuery code that is self-initialising.
*
* @since 1.0.0
*
* @param string|null $hook_suffix The current admin page. Note this can be null because `iframe_header()` does not
* ensure that `$hook_suffix` is a string when it calls `do_action( ‘admin_enqueue_scripts’, $hook_suffix )`.
*/
function perflab_admin_pointer( ?string $hook_suffix = ” ): void {
// Do not show admin pointer in multisite Network admin or User admin UI.
if ( is_network_admin() || is_user_admin() ) {
return;
}
$current_user = get_current_user_id();
$dismissed = array_filter( explode( ‘,’, (string) get_user_meta( get_current_user_id(), ‘dismissed_wp_pointers’, true ) ) );

if ( in_array( ‘perflab-admin-pointer’, $dismissed, true ) ) {
return;
}

if ( ! in_array( $hook_suffix, array( ‘index.php’, ‘plugins.php’ ), true ) ) {

// Do not show on the settings page and dismiss the pointer.
if ( isset( $_GET[‘page’] ) && PERFLAB_SCREEN === $_GET[‘page’] && ( ! in_array( ‘perflab-admin-pointer’, $dismissed, true ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
$dismissed[] = ‘perflab-admin-pointer’;
update_user_meta( $current_user, ‘dismissed_wp_pointers’, implode( ‘,’, $dismissed ) );
}

return;
}

// Enqueue pointer CSS and JS.
wp_enqueue_style( ‘wp-pointer’ );
wp_enqueue_script( ‘wp-pointer’ );
add_action( ‘admin_print_footer_scripts’, ‘perflab_render_pointer’, 10, 0 );
}
add_action( ‘admin_enqueue_scripts’, ‘perflab_admin_pointer’ );

/**
* Renders the Admin Pointer.
*
* Handles the rendering of the admin pointer.
*
* @since 1.0.0
* @since 2.4.0 Optional arguments were added to make the function reusable for different pointers.
*
* @param string $pointer_id Optional. ID of the pointer. Default ‘perflab-admin-pointer’.
* @param array{heading?: string, content?: string} $args Optional. Pointer arguments. Supports ‘heading’ and ‘content’ entries.
* Defaults are the heading and content for the ‘perflab-admin-pointer’.
*/
function perflab_render_pointer( string $pointer_id = ‘perflab-admin-pointer’, array $args = array() ): void {
if ( ! isset( $args[‘heading’] ) ) {
$args[‘heading’] = __( ‘Performance Lab’, ‘performance-lab’ );
}
if ( ! isset( $args[‘content’] ) ) {
$args[‘content’] = sprintf(
/* translators: %s: settings page link */
esc_html__( ‘You can now test upcoming WordPress performance features. Open %s to individually toggle the performance features.’, ‘performance-lab’ ),
‘<a href=”‘ . esc_url( add_query_arg( ‘page’, PERFLAB_SCREEN, admin_url( ‘options-general.php’ ) ) ) . ‘”>’ . esc_html__( ‘Settings > Performance’, ‘performance-lab’ ) . ‘</a>’
);
}

$wp_kses_options = array(
‘a’ => array(
‘href’ => array(),
),
);

?>
<script id=”<?php echo esc_attr( $pointer_id ); ?>” type=”text/javascript”>
jQuery( function() {
// Pointer Options.
const options = {
content: <?php echo wp_json_encode( ‘<h3>’ . esc_html( $args[‘heading’] ) . ‘</h3><p>’ . wp_kses( $args[‘content’], $wp_kses_options ) . ‘</p>’ ); ?>,
position: {
edge: ‘left’,
align: ‘right’,
},
pointerClass: ‘wp-pointer arrow-top’,
pointerWidth: 420,
close: function() {
jQuery.post(
window.ajaxurl,
{
pointer: <?php echo wp_json_encode( $pointer_id ); ?>,
action: ‘dismiss-wp-pointer’,
_wpnonce: <?php echo wp_json_encode( wp_create_nonce( ‘dismiss_pointer’ ) ); ?>,
}
);
}
};

jQuery( ‘#menu-settings’ ).pointer( options ).pointer( ‘open’ );
} );
</script>
<?php
}

/**
* Adds a link to the features page to the plugin’s entry in the plugins list table.
*
* This function is only used if the features page exists and is accessible.
*
* @since 1.0.0
*
* @see perflab_add_features_page()
*
* @param string[]|mixed $links List of plugin action links HTML.
* @return string[]|mixed Modified list of plugin action links HTML.
*/
function perflab_plugin_action_links_add_settings( $links ) {
if ( ! is_array( $links ) ) {
return $links;
}

// Add link as the first plugin action link.
$settings_link = sprintf(
‘<a href=”%s”>%s</a>’,
esc_url( add_query_arg( ‘page’, PERFLAB_SCREEN, admin_url( ‘options-general.php’ ) ) ),
esc_html__( ‘Settings’, ‘performance-lab’ )
);

return array_merge(
array( ‘settings’ => $settings_link ),
$links
);
}

/**
* Dismisses notification pointer after verifying nonce.
*
* This function adds a nonce check before dismissing perflab-admin-pointer
* It runs before the dismiss-wp-pointer AJAX action is performed.
*
* @since 2.3.0
*/
function perflab_dismiss_wp_pointer_wrapper(): void {
if ( isset( $_POST[‘pointer’] ) && ‘perflab-admin-pointer’ !== $_POST[‘pointer’] ) {
// Another plugin’s pointer, do nothing.
return;
}
check_ajax_referer( ‘dismiss_pointer’ );
}
add_action( ‘wp_ajax_dismiss-wp-pointer’, ‘perflab_dismiss_wp_pointer_wrapper’, 0 );

/**
* Gets the path to a script or stylesheet.
*
* @since 3.7.0
*
* @param string $src_path Source path.
* @param string|null $min_path Minified path. If not supplied, then ‘.min’ is injected before the file extension in the source path.
* @return string URL to script or stylesheet.
*/
function perflab_get_asset_path( string $src_path, ?string $min_path = null ): string {
if ( null === $min_path ) {
// Note: wp_scripts_get_suffix() is not used here because we need access to both the source and minified paths.
$min_path = (string) preg_replace( ‘/(?=\.\w+$)/’, ‘.min’, $src_path );
}

$force_src = false;
if ( WP_DEBUG && ! file_exists( trailingslashit( PERFLAB_PLUGIN_DIR_PATH ) . $min_path ) ) {
$force_src = true;
wp_trigger_error(
__FUNCTION__,
sprintf(
/* translators: %s is the minified asset path */
__( ‘Minified asset has not been built: %s’, ‘performance-lab’ ),
$min_path
),
E_USER_WARNING
);
}

if ( SCRIPT_DEBUG || $force_src ) {
return $src_path;
}

return $min_path;
}

/**
* Callback function to handle admin scripts.
*
* @since 2.8.0
* @since 3.0.0 Renamed to perflab_enqueue_features_page_scripts().
*/
function perflab_enqueue_features_page_scripts(): void {
// These assets are needed for the “Learn more” popover.
wp_enqueue_script( ‘thickbox’ );
wp_enqueue_style( ‘thickbox’ );
wp_enqueue_script( ‘plugin-install’ );

// Enqueue plugin activate AJAX script and localize script data.
wp_enqueue_script(
‘perflab-plugin-activate-ajax’,
plugins_url( perflab_get_asset_path( ‘includes/admin/plugin-activate-ajax.js’ ), PERFLAB_MAIN_FILE ),
array( ‘wp-i18n’, ‘wp-a11y’, ‘wp-api-fetch’ ),
PERFLAB_VERSION,
true
);
}

/**
* Sanitizes a plugin slug.
*
* @since 3.1.0
*
* @param mixed $unsanitized_plugin_slug Unsanitized plugin slug.
* @return string|null Validated and sanitized slug or else null.
*/
function perflab_sanitize_plugin_slug( $unsanitized_plugin_slug ): ?string {
if ( in_array( $unsanitized_plugin_slug, perflab_get_standalone_plugins(), true ) ) {
return $unsanitized_plugin_slug;
} else {
return null;
}
}

/**
* Callback for handling installation/activation of plugin.
*
* @since 3.0.0
*/
function perflab_install_activate_plugin_callback(): void {
check_admin_referer( ‘perflab_install_activate_plugin’ );

require_once ABSPATH . ‘wp-admin/includes/plugin.php’;
require_once ABSPATH . ‘wp-admin/includes/plugin-install.php’;
require_once ABSPATH . ‘wp-admin/includes/class-wp-upgrader.php’;
require_once ABSPATH . ‘wp-admin/includes/class-wp-ajax-upgrader-skin.php’;

if ( ! isset( $_GET[‘slug’] ) ) {
wp_die( esc_html__( ‘Missing required parameter.’, ‘performance-lab’ ) );
}

$plugin_slug = perflab_sanitize_plugin_slug( wp_unslash( $_GET[‘slug’] ) );
if ( null === $plugin_slug ) {
wp_die( esc_html__( ‘Invalid plugin.’, ‘performance-lab’ ) );
}

// Install and activate the plugin and its dependencies.
$result = perflab_install_and_activate_plugin( $plugin_slug );
if ( $result instanceof WP_Error ) {
wp_die( wp_kses_post( $result->get_error_message() ) );
}

$url = add_query_arg(
array(
‘page’ => PERFLAB_SCREEN,
‘activate’ => $plugin_slug,
),
admin_url( ‘options-general.php’ )
);

if ( wp_safe_redirect( $url ) ) {
exit;
}
}
add_action( ‘admin_action_perflab_install_activate_plugin’, ‘perflab_install_activate_plugin_callback’ );

/**
* Callback function to handle admin inline style.
*
* @since 3.0.0
*/
function perflab_print_features_page_style(): void {
?>
<style>
.plugin-card .name,
.plugin-card .desc, /* For WP <6.5 versions */
.plugin-card .desc > p {
margin-left: 0;
}
.plugin-card-top {
/* This is required to ensure the Settings link does not extend below the bottom of a plugin card on a wide screen. */
min-height: 90px;
}
@media screen and (max-width: 782px) {
.plugin-card-top {
/* Same reason as above, but now the button is taller to make it easier to tap on touch screens. */
min-height: 110px;
}
}
.plugin-card .perflab-plugin-experimental {
font-size: 80%;
font-weight: normal;
}

@media screen and (max-width: 1100px) and (min-width: 782px), (max-width: 480px) {
.plugin-card .action-links {
margin-left: auto;
}
/* Make sure the settings link gets spaced out from the Learn more link. */
.plugin-card .plugin-action-buttons > li:nth-child(3) {
margin-left: 2ex;
border-left: solid 1px;
padding-left: 2ex;
}
}
</style>
<?php
}

/**
* Callback function hooked to admin_notices to render admin notices on the plugin’s screen.
*
* @since 2.8.0
*/
function perflab_plugin_admin_notices(): void {
if ( ! current_user_can( ‘install_plugins’ ) ) {
$are_all_plugins_installed = true;
$installed_plugin_slugs = array_map(
static function ( $name ) {
return strtok( $name, ‘/’ );
},
array_keys( get_plugins() )
);
foreach ( perflab_get_standalone_plugin_version_constants() as $plugin_slug => $constant_name ) {
if ( ! in_array( $plugin_slug, $installed_plugin_slugs, true ) ) {
$are_all_plugins_installed = false;
break;
}
}

if ( ! $are_all_plugins_installed ) {
wp_admin_notice(
esc_html__( ‘Due to your site\’s configuration, you may not be able to activate the performance features, unless the underlying plugin is already installed. Please install the relevant plugins manually.’, ‘performance-lab’ ),
array(
‘type’ => ‘warning’,
)
);
return;
}
}

$activated_plugin_slug = null;
if ( isset( $_GET[‘activate’] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
$activated_plugin_slug = perflab_sanitize_plugin_slug( wp_unslash( $_GET[‘activate’] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
}

if ( null !== $activated_plugin_slug ) {
$message = __( ‘Feature activated.’, ‘performance-lab’ );

$plugin_settings_url = perflab_get_plugin_settings_url( $activated_plugin_slug );
if ( null !== $plugin_settings_url ) {
/* translators: %s is the settings URL */
$message .= ‘ ‘ . sprintf( __( ‘Review <a href=”%s”>settings</a>.’, ‘performance-lab’ ), esc_url( $plugin_settings_url ) );
}

wp_admin_notice(
wp_kses(
$message,
array(
‘a’ => array(
‘href’ => array(),
),
)
),
array(
‘type’ => ‘success’,
‘dismissible’ => true,
)
);
}
}

/**
* Gets the URL to the plugin settings screen if one exists.
*
* @since 3.1.0
*
* @param string $plugin_slug Plugin slug passed to generate the settings link.
* @return string|null Either the plugin settings URL or null if not available.
*/
function perflab_get_plugin_settings_url( string $plugin_slug ): ?string {
$plugin_file = null;

foreach ( array_keys( get_plugins() ) as $file ) {
if ( strtok( $file, ‘/’ ) === $plugin_slug ) {
$plugin_file = $file;
break;
}
}

if ( null === $plugin_file ) {
return null;
}

/** This filter is documented in wp-admin/includes/class-wp-plugins-list-table.php */
$plugin_links = apply_filters( “plugin_action_links_{$plugin_file}”, array() );

if ( ! is_array( $plugin_links ) || ! array_key_exists( ‘settings’, $plugin_links ) ) {
return null;
}

$p = new WP_HTML_Tag_Processor( $plugin_links[‘settings’] );
if ( ! $p->next_tag( array( ‘tag_name’ => ‘A’ ) ) ) {
return null;
}
$href = $p->get_attribute( ‘href’ );
if ( is_string( $href ) && ” !== $href ) {
return $href;
}

return null;
}

/**
* Prints the Performance Lab install notice after each feature plugin’s row meta.
*
* @since 3.2.0
*
* @param string $plugin_file Plugin file.
*/
function perflab_print_row_meta_install_notice( string $plugin_file ): void {
if ( ! in_array( strtok( $plugin_file, ‘/’ ), perflab_get_standalone_plugins(), true ) ) {
return;
}

$message = sprintf(
/* translators: %s: link to Performance Lab settings screen */
__( ‘This plugin is installed by <a href=”%s”>Performance Lab</a>.’, ‘performance-lab’ ),
esc_url( add_query_arg( ‘page’, PERFLAB_SCREEN, admin_url( ‘options-general.php’ ) ) )
);

printf(
‘<div class=”requires”><p>%1$s</p></div>’,
wp_kses( $message, array( ‘a’ => array( ‘href’ => array() ) ) )
);
}
add_action( ‘after_plugin_row_meta’, ‘perflab_print_row_meta_install_notice’ );

Shipping & Delivery

We are proud to offer international shipping services that currently operate in over 200 countries and islands world wide. Nothing means more to us than bringing our customers great value and service. We will continue to grow to meet the needs of all our customers, delivering a service beyond all expectation anywhere in the world.

How do you ship packages?

Packages from our warehouse in China will be shipped by ePacket or EMS depending on the weight and size of the product. Packages shipped from our US warehouse are shipped through USPS.

Do you ship worldwide?

Yes. We provide free shipping to over 200 countries around the world. However, there are some locations we are unable to ship to. If you happen to be located in one of those countries we will contact you.

What about customs?

We are not responsible for any custom fees once the items have shipped. By purchasing our products, you consent that one or more packages may be shipped to you and may get custom fees when they arrive to your country.

How long does shipping take?

Shipping time varies by location. These are our estimates:

Location *Estimated Shipping Time
United States 10-30 Business days
Canada, Europe 10-30 Business days
Australia, New Zealand 10-30 Business days
Central & South America 15-30 Business days
Asia 10-20 Business days
Africa 15-45 Business days
*This doesn’t include our 2-5 day processing time.

Do you provide tracking information?

Yes, you will receive an email once your order ships that contains your tracking information. If you haven’t received tracking info within 5 days, please contact us.

My tracking says “no information available at the moment”.

For some shipping companies, it takes 2-5 business days for the tracking information to update on the system. If your order was placed more than 5 business days ago and there is still no information on your tracking number, please contact us.

Will my items be sent in one package?

For logistical reasons, items in the same purchase will sometimes be sent in separate packages, even if you've specified combined shipping.

If you have any other questions, please contact us and we will do our best to help you out.

Refunds & Returns

Order cancellation

All orders can be cancelled until they are shipped. If your order has been paid and you need to make a change or cancel an order, you must contact us within 12 hours. Once the packaging and shipping process has started, it can no longer be cancelled.

Refunds

Your satisfaction is our #1 priority. Therefore, you can request a refund or reshipment for ordered products if:

  • If you did not receive the product within the guaranteed time( 45 days not including 2-5 day processing) you can request a refund or a reshipment.
  • If you received the wrong item you can request a refund or a reshipment.
  • If you do not want the product you’ve received you may request a refund but you must return the item at your expense and the item must be unused.

We do not issue the refund if:

  • Your order did not arrive due to factors within your control (i.e. providing the wrong shipping address)
  • Your order did not arrive due to exceptional circumstances outside the control of Kaicoveyco (i.e. not cleared by customs, delayed by a natural disaster).
  • Other exceptional circumstances outside the control of

*You can submit refund requests within 15 days after the guaranteed period for delivery (45 days) has expired. You can do it by sending a message on Contact Us page

If you are approved for a refund, then your refund will be processed, and a credit will automatically be applied to your credit card or original method of payment, within 14 days.

Exchanges

If for any reason you would like to exchange your product, perhaps for a different size in clothing. You must contact us first and we will guide you through the steps.

Please do not send your purchase back to us unless we authorise you to do so.

Customer Reviews

There are no reviews yet

Write a Review

We Think You’ll Love

Top picks just for you

Fast Worldwide Shipping
Get your orders quickly with our expedited shipping services available globally
30-Day Money Back Guarantee
Shop with confidence knowing that returns are easy and free
Secure Payment Options
We offer safe and diverse payment methods including credit cards and PayPal
Exclusive Offers
Sign up to receive special promotions, discounts, and insider-only deals
High-Quality Products
We source the finest products to ensure your complete satisfaction
Easy Returns
Hassle-free returns process to ensure you are satisfied with every purchase
Friendly Support
Our friendly team is here to assist you with a smile, making your experience enjoyable
Top

Shopping cart

×