Single product – Cross sell as related products

// Stap 1: Verwijder de standaard related products remove_action( ‘woocommerce_after_single_product_summary’, ‘woocommerce_output_related_products’, 20 ); // Stap 2: Toon cross-sells aangevuld met related products tot totaal van 4 add_action( ‘woocommerce_after_single_product_summary’, function() { global $product; if ( ! $product || ! is_a( $product,…Continue reading

MetaBox – PHP Fonctions pour les templates

// get_mb_relationships_dat // Pour l’appeler dans le code : // —— // Exemple 1 // En haut de fichier // {% set prefectures_liees = mb.get_mb_relationships_data(post.ID, ‘tsunami_to_prefectures’, ‘prefecture’, ‘from’, [‘code_pref’, ‘population’]) %} // Puis, pour l’affichage // {% set pref_textes =…Continue reading

COMPROBACIÓN DATOS ORLA + POPUP + INCIDENCIAS UNIFICADO

// === TECNOFOTO – COMPROBACIÓN DATOS ORLA + EDICIÓN + POPUP + INCIDENCIAS === // Página /comprobacion-de-datos con shortcode: [comprobacion_datos_orla] if (!defined(‘ABSPATH’)) exit; /* ========================================================= * 0) Proteger página /comprobacion-de-datos solo para logueados * ======================================================= */ add_action(‘template_redirect’, function () {…Continue reading

[IN PROGRESS] Inject data-product-tags into all products

add_action(‘woocommerce_before_single_product’, function () { global $post; if (!is_product()) return; $product = wc_get_product($post->ID); if (!$product) return; $tags = wp_get_post_terms($post->ID, ‘product_tag’, [‘fields’ => ‘names’]); $tag_string = !empty($tags) ? esc_attr(implode(‘, ‘, $tags)) : ”; echo ‘Continue reading

more feater

add_shortcode(‘product_features_boxes’, function () { if (!function_exists(‘wc_get_product’)) { return ”; } global $product; if (!$product || !is_a($product, ‘WC_Product’)) { $product = wc_get_product(get_the_ID()); } if (!$product) { return ”; } $attributes = $product->get_attributes(); if (empty($attributes)) { return ”; } $items = array();…Continue reading

EA – Elementor Hooks Fallback

/** * EA Elementor Hooks Fallback * * Prevents Essential Addons frontend scripts from breaking custom JS * when they reference window.elementor.hooks before Elementor has fully * initialized. * * Required for: * – Hero card scroll behavior * –…Continue reading

Notifications – Content Loader

/** * Notification Panel Content Loader * * Loads the Elementor template with the slug: * notification-container * * This template contains the Notification Listing Grid and * is injected into a hidden container for the global * notification panel.…Continue reading

Notifications – Count Shortcode

add_shortcode(‘site_notification_count’, function () { $today = current_time(‘timestamp’); $query = new WP_Query(array( ‘post_type’ => ‘notification’, ‘post_status’ => ‘publish’, ‘posts_per_page’ => -1, ‘fields’ => ‘ids’, ‘meta_query’ => array( ‘relation’ => ‘AND’, array( ‘key’ => ‘notification_active’, ‘value’ => ‘show’, ‘compare’ => ‘=’ ),…Continue reading

Untitled Snippet

‘options’ => array( ” => ‘Maak een keuze’, ‘Google’ => ‘Google’, ‘Via Marktplaats’ => ‘Via Marktplaats’, ‘ChatGPT’ => ‘ChatGPT’, ‘Facebook’ => ‘Facebook’, ‘Instagram’ => ‘Instagram’, ‘Via een vriend of kennis’ => ‘Via een vriend of kennis’, ‘Anders’ => ‘Anders’, ),Continue reading