WC_AJAX::is_shipping_provider_in_use
Check if a shipping provider slug is referenced by any fulfillment record.
Method of the class: WC_AJAX{}
No Hooks.
Returns
true|false. True if the provider is in use.
Usage
$result = WC_AJAX::is_shipping_provider_in_use( $provider_slug ): bool;
- $provider_slug(string) (required)
- The provider slug to check.
Changelog
| Since 10.7.0 | Introduced. |
WC_AJAX::is_shipping_provider_in_use() WC AJAX::is shipping provider in use code WC 10.8.1
private static function is_shipping_provider_in_use( string $provider_slug ): bool {
global $wpdb;
$fulfillments_table = $wpdb->prefix . 'wc_order_fulfillments';
$meta_table = $wpdb->prefix . 'wc_order_fulfillment_meta';
// phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
$exists = $wpdb->get_var(
$wpdb->prepare(
"SELECT 1 FROM {$fulfillments_table} f
INNER JOIN {$meta_table} m ON f.fulfillment_id = m.fulfillment_id
WHERE m.meta_key = '_shipment_provider'
AND m.meta_value = %s
AND f.date_deleted IS NULL
AND m.date_deleted IS NULL
LIMIT 1",
wp_json_encode( $provider_slug )
)
);
// phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
// Fail safe: assume in use if the query itself failed.
if ( $wpdb->last_error ) {
return true;
}
return null !== $exists;
}