class IM_SKU_Sync { private static $in_progress = false; public static function get_base_sku($sku) { if (!is_string($sku)) return ''; if (preg_match('/^(.+?)(-EBAY(?:-\d+)?)$/i', $sku, $m)) { return $m[1]; } return $sku; } public static function sync($source_sku, $qty = null, $location = null) { global $wpdb; if (empty($source_sku)) return; if (self::$in_progress) return; self::$in_progress = true; $base = self::get_base_sku($source_sku); $like = $wpdb->esc_like($base) . '%'; $rows = $wpdb->get_results($wpdb->prepare(" SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = '_sku' AND meta_value LIKE %s ", $like)); foreach ($rows as $row) { $id = (int)$row->post_id; if ($qty !== null) { update_post_meta($id, '_stock', $qty); } if ($location !== null) { update_post_meta($id, '_product_code', $location); } } self::$in_progress = false; } }class IM_Barcode_Scanner { public static function render() { global $wpdb; echo '

Barcode Scanner

'; if (!empty($_POST['pcs_save'])) { $post_id = intval($_POST['pcs_post_id']); $stock = intval($_POST['pcs_stock']); $location = sanitize_text_field($_POST['pcs_location']); update_post_meta($post_id, '_stock', $stock); update_post_meta($post_id, '_product_code', $location); $sku = get_post_meta($post_id, '_sku', true); if ($sku) { IM_SKU_Sync::sync($sku, $stock, $location); } echo '

Saved

'; } echo '
'; echo ''; submit_button('Search'); echo '
'; echo '
'; } }class IM_Menu { public static function init() { add_menu_page( 'Inventory Manager', 'Inventory Manager', 'manage_woocommerce', 'inventory-manager', '__return_null' ); add_submenu_page( 'inventory-manager', 'Barcode Scanner', 'Barcode Scanner', 'manage_woocommerce', 'barcode-scanner', ['IM_Barcode_Scanner', 'render'] ); add_submenu_page( 'inventory-manager', 'Receive Inventory', 'Receive Inventory', 'manage_woocommerce', 'receive-inventory', ['IM_Receive_Inventory', 'render'] ); add_submenu_page( 'inventory-manager', 'Location Scanner', 'Location Scanner', 'manage_woocommerce', 'location-scanner', ['IM_Location_Scanner', 'render'] ); add_submenu_page( 'inventory-manager', 'SKU Scanner', 'SKU Scanner', 'manage_woocommerce', 'sku-scanner', ['IM_SKU_Scanner', 'render'] ); } } Schwarzkopf

Schwarzkopf

More in Brands

Shopping Basket
0
    Your Cart
    Your cart is emptyReturn to Shop