/* Plugin Name: WooCommerce Mobile Menu Builder Description: A mobile-first menu builder for WooCommerce categories with icon support, rename, and dynamic filtering. Version: 1.0 Author: FeitFisk */ // Register admin menu add_action('admin_menu', function () { add_menu_page( 'Mobile Menu Builder', 'Mobile Menu Builder', 'manage_woocommerce', 'wc-mobile-menu-builder', 'wc_mobile_menu_admin_page', 'dashicons-menu', 58 ); }); // Enqueue styles and scripts add_action('admin_enqueue_scripts', function ($hook) { if ($hook !== 'toplevel_page_wc-mobile-menu-builder') return; wp_enqueue_style('wc-mobile-menu-admin', plugin_dir_url(__FILE__) . 'assets/admin.css'); wp_enqueue_script('wc-mobile-menu-admin-js', plugin_dir_url(__FILE__) . 'assets/admin.js', ['jquery'], null, true); }); function wc_mobile_menu_admin_page() { $categories = get_terms(['taxonomy' => 'product_cat', 'hide_empty' => false]); $settings = get_option('wc_mobile_menu_settings', []); echo '

WooCommerce Mobile Menu Builder

'; echo ''; foreach ($categories as $cat) { $id = $cat->term_id; $custom = $settings[$id] ?? []; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
CategoryMainCustom NameIconExclude
' . esc_html($cat->name) . '
'; submit_button(); echo '
'; } add_action('admin_init', function () { if (!empty($_POST['settings']) && current_user_can('manage_woocommerce')) { update_option('wc_mobile_menu_settings', array_map('wc_mobile_menu_sanitize_settings', $_POST['settings'])); } }); function wc_mobile_menu_sanitize_settings($data) { return [ 'main' => !empty($data['main']), 'name' => sanitize_text_field($data['name'] ?? ''), 'icon' => sanitize_text_field($data['icon'] ?? ''), 'exclude' => !empty($data['exclude']), ]; } function wc_mobile_menu_build_tree($parent_id = 0, $categories, $settings) { $branch = []; foreach ($categories as $cat) { if ($cat->parent != $parent_id) continue; $id = $cat->term_id; $conf = $settings[$id] ?? []; if (!empty($conf['exclude'])) continue; $children = wc_mobile_menu_build_tree($id, $categories, $settings); $has_products = $cat->count > 0 || count($children) > 0; if (!$has_products) continue; $branch[] = [ 'name' => $conf['name'] ?: $cat->name, 'icon' => $conf['icon'] ?? '', 'url' => get_term_link($cat), 'children' => $children ]; } return $branch; } add_shortcode('woo_mobile_menu', function () { ob_start(); echo '
'; wp_enqueue_style('wc-mobile-menu-style', plugin_dir_url(__FILE__) . 'assets/menu.css'); wp_enqueue_script('wc-mobile-menu-script', plugin_dir_url(__FILE__) . 'assets/menu.js', [], null, true); $settings = get_option('wc_mobile_menu_settings', []); $all_categories = get_terms(['taxonomy' => 'product_cat', 'hide_empty' => false]); $main_ids = array_filter(array_keys($settings), fn($id) => !empty($settings[$id]['main'])); $main_categories = array_filter($all_categories, fn($cat) => in_array($cat->term_id, $main_ids)); $menu_data = wc_mobile_menu_build_tree(0, $all_categories, $settings); wp_localize_script('wc-mobile-menu-script', 'wcMobileMenuData', $menu_data); return ob_get_clean(); }); } ] } Baatdeler.no – Side 55 – Båtdeler på nett
Skip to main content

FRI FRAKT PÅ ALLE ORDRE OVER 4000,-

FRI FRAKT PÅ ALLE ORDRE OVER 4000,-

RASK LEVERING

Vi tilbyr frakt fra kun 39,-
og enkel retur

GODE KJØPSOPPLEVELSER

Med lidenskap for båt
og gode kjøpsopplevelser

SERVICE I FOKUS

Vi hjelper deg å velge rett produkt
til din båt og budsjett

Utvalgte produkter

Vi nærmer oss innflytning i nytt lokale på Solåsen! 😀☀️ En stor takk til alle som har hjulpet oss med både bygging av en ekstra etasje, kontor og ikke minst hyller/innredning! Vi satser på å være inne i løpet av mars, vi sees! 👍 ...

18 0

Hvordan oppbevarer du din påhenger på vinteren? Motorbukk er veldig kjekt! forenkler og lagrer din motor på en praktisk og trygg måte. 🙌 #båt #båtopplag #baatdeler #båtmotor #påhenger ...

5 0

Nytt kjøpeskap i båten? 🍺
Knallpris på kjøleskap fra Alpicool! Romslig og med teknologien du vil ha, som APP styring 📱
https://baatdeler.no/produkt/kjoleskap-kompressor-65-l-alpicool #båt #båtliv #ALPICOOL
...

2 0

Baatdeler i ny drakt! 😀🙌
Gratis frakt på ALLE ordre ut mai 🥳
https://www.baatdeler.no/
...

1 0

Trenger du noe til båten idag? 🚤⛵️ Vi er klare for å utlevere varer i hele dag 😀 Ring oss på 40856206 https://baatdeler.no/pa-salg/?orderby=price ...

2 0

Skal du begynne på båtpussen i påsken? Husk at du kan bestille på nett og hente i Kragerø 🚤⛵️

www.baatdeler.no
...

2 0

Dette er produkter som virkelig løser utfordringen med vannlinjer som er vanskelig å få rene! ...

0 0

Vi har presenninger på lager. Disse er solide og beskytter båten din gjennom vinteren

https://baatdeler.no/produkt/presenning-260-g-1852/
...

1 0

Disse motorstativene er geniale. Ikke bare forenkler de jobben med å konservere, de gjør også oppbevaringen av påhengsmotoren lettere.

https://baatdeler.no/produkt/motorbukk-stativ/
...

4 0

Veldig mange spør etter SUP brett om dagen! I morgen får vi inn noen få brett 🏄‍♀️ ...

4 0
This error message is only visible to WordPress admins
There has been a problem with your Instagram Feed.
1
  • Item added to cart
1
Din handlekurv
Gratulerer! Du får gratis frakt!
DYNASTART til diverse båtmotorer
Price: kr6,699.00
- +
kr6,699.00
    Calculate Shipping
    Fraktalternativer vil bli oppdatert på betalingssiden.
    Apply Coupon