<?php @ini_set('upload_max_size', '64M'); @ini_set('post_max_size', '64M'); @ini_set('max_execution_time', '300'); //Get Zones function get_zones($post_ID = 157) { if (get_field('zones_commerciaux', $post_ID)): $i = 0; while (has_sub_field('zones_commerciaux', $post_ID)) : if (get_sub_field('list_zones', $post_ID)): $list_zone = array(); while (has_sub_field('list_zones', $post_ID)) : $list_zone[] = get_sub_field('num_zone'); endwhile; endif; $allZones['zone' . $i] = $list_zone; $i++; endwhile; endif; return json_encode($allZones); } //Dequeue CSS function nap_dequeue_unnecessary_css() { wp_dequeue_style('additional-parent-style'); wp_deregister_style('additional-parent-style'); wp_dequeue_style('twentyseventeen-fonts'); wp_dequeue_style('nf-display-style'); } add_action('wp_enqueue_scripts', 'nap_dequeue_unnecessary_css', 100); //Dequeue JavaScripts function nap_dequeue_unnecessary_scripts() { wp_dequeue_script('twentyseventeen-global'); wp_deregister_script('twentyseventeen-global'); wp_dequeue_script('jquery-scrollto'); wp_deregister_script('jquery-scrollto'); wp_dequeue_script('twentyseventeen-skip-link-focus-fix'); wp_deregister_script('twentyseventeen-skip-link-focus-fix'); wp_dequeue_script('twentyseventeen-navigation'); wp_deregister_script('twentyseventeen-navigation'); //MS : 2017-07-17 wp_register_script('getZones', home_url('wp-content/themes/nap/assets') . '/js/map.js'); $listZones = array('listZones' => get_zones(157)); wp_localize_script('getZones', 'zonesL', $listZones); // wp_localize_script( 'listZones', 'object_name', $listZones ); wp_enqueue_script('getZones'); //END MS : 2017-07-17 } add_action('wp_print_scripts', 'nap_dequeue_unnecessary_scripts'); //Display SVG function nap_wpc_mime_types($mimes) { $mimes['svg'] = 'image/svg+xml'; return $mimes; } add_filter('upload_mimes', 'nap_wpc_mime_types'); add_filter('redirect_canonical', 'nap_custom_disable_redirect_canonical'); function nap_custom_disable_redirect_canonical($redirect_url) { if (is_paged() && is_singular()) $redirect_url = false; return $redirect_url; } function nap_change_wp_search_size($query) { if ($query->is_search) $query->query_vars['posts_per_page'] = 200; return $query; } add_filter('pre_get_posts', 'nap_change_wp_search_size'); //Custom logo function nap_custom_loginlogo() { echo '<style type="text/css"> h1 a {background-image: url(' . home_url('wp-content/themes/nap/assets/images/logo.svg') . ') !important;width:102px !important;background-size:100px !important;height:52px !important;background: #05162b; opacity: 0.9; } </style>'; } add_action('login_head', 'nap_custom_loginlogo'); // Move Yoast to bottom function nap_yoasttobottom() { return 'low'; } add_filter('wpseo_metabox_prio', 'nap_yoasttobottom'); add_filter('admin_footer_text', '__return_empty_string', 11); add_filter('update_footer', '__return_empty_string', 11); //=============================================================================== function nap_get_content($postID) { $content_post = get_post($postID); $content = $content_post->post_content; $content = apply_filters('the_content', $content); $content = str_replace(']]>', ']]>', $content); return $content; } add_action('init', 'nap_create_post_type'); function nap_create_post_type() { register_post_type('fiche_technique', array( 'labels' => array( 'name' => __('Fiches Techniques'), 'singular_name' => __('Fiche Technique') ), 'public' => true ) ); } function nap_post_type_listing($post_type) { $select = array(); $posts = get_posts( array( 'post_type' => $post_type, 'numberposts' => -1 ) ); if (!$posts) return; foreach ($posts as $p) { $select[$p->ID] = $p->post_title; } return $select; } add_action('woocommerce_product_after_variable_attributes', 'nap_variation_settings_fields', 10, 3); function nap_variation_settings_fields($loop, $variation_data, $variation) { // code variation woocommerce_wp_text_input( array( 'id' => 'var_code_' . $variation->ID, 'label' => __('Code article', 'woocommerce'), /* 'desc_tip' => 'true', 'description' => __( 'Ajouter le code article.', 'woocommerce' ), */ 'value' => get_post_meta($variation->ID, '_var_code', true), 'custom_attributes' => array( 'step' => 'any', 'min' => '0' ) ) ); // Gencode woocommerce_wp_text_input( array( 'id' => 'var_gencod_' . $variation->ID, 'label' => __('Gencod(EAN13)', 'woocommerce'), /* 'desc_tip' => 'true', 'description' => __( 'Ajouter le Gencod', 'woocommerce' ), */ 'value' => get_post_meta($variation->ID, '_var_gencod', true), 'custom_attributes' => array( 'step' => 'any', 'min' => '0' ) ) ); // ITF 14 woocommerce_wp_text_input( array( 'id' => 'var_itf14_' . $variation->ID, 'label' => __('ITF 14', 'woocommerce'), /* 'desc_tip' => 'true', 'description' => __( 'Ajouter le Gencod', 'woocommerce' ), */ 'value' => get_post_meta($variation->ID, '_var_itf14', true), 'custom_attributes' => array( 'step' => 'any', 'min' => '0' ) ) ); // Select fiches techniques $option = nap_post_type_listing('fiche_technique'); woocommerce_wp_select( array( 'id' => 'var_fiche_' . $variation->ID, 'label' => __('Fiche technique ', 'woocommerce'), 'value' => get_post_meta($variation->ID, '_var_fiche', true), 'options' => $option ) ); } // Save Variation Settings add_action('woocommerce_save_product_variation', 'nap_save_variation_settings_fields', 10, 2); function nap_save_variation_settings_fields($variation_id) { // code variation $var_code = $_POST['var_code_' . $variation_id]; if (!empty($var_code)) { update_post_meta($variation_id, '_var_code', esc_attr($var_code)); } // Gencode $var_gencod = $_POST['var_gencod_' . $variation_id]; if (!empty($var_gencod)) { update_post_meta($variation_id, '_var_gencod', esc_attr($var_gencod)); } // ITF 14 $var_itf14 = $_POST['var_itf14_' . $variation_id]; if (!empty($var_itf14)) { update_post_meta($variation_id, '_var_itf14', esc_attr($var_itf14)); } // Select fiches techniques $var_fiche = $_POST['var_fiche_' . $variation_id]; if (!empty($var_fiche)) { update_post_meta($variation_id, '_var_fiche', esc_attr($var_fiche)); } } function nap_load_variation_settings_fields($variations_id) { // duplicate the line for each field $variations['var_code'] = get_post_meta($variations_id, '_var_code', true); $variations['var_gencod'] = get_post_meta($variations_id, '_var_gencod', true); $variations['var_itf14'] = get_post_meta($variations_id, '_var_itf14', true); $variations['var_fiche'] = get_post_meta($variations_id, '_var_fiche', true); return $variations; } function nap_category_image($catID) { $thumbnail_id = get_woocommerce_term_meta($catID, 'thumbnail_id', true); $image = wp_get_attachment_image_src($thumbnail_id, 'large'); return $image[0]; } function nap_attachment_image($pageID) { $thumb = wp_get_attachment_image_src(get_post_thumbnail_id($pageID), 'default'); $url = $thumb['0']; return $url; } function nap_menu() { $menu = ""; $taxonomy = 'product_cat'; $orderby = 'id'; $show_count = 0; $pad_counts = 0; $hierarchical = 1; $title = ''; $empty = 0; $args = array( 'taxonomy' => $taxonomy, 'orderby' => $orderby, 'show_count' => $show_count, 'pad_counts' => $pad_counts, 'hierarchical' => $hierarchical, 'title_li' => $title, 'hide_empty' => $empty ); $all_categories = get_categories($args); foreach ($all_categories as $cat) { if ($cat->category_parent == 0) { $category_id = $cat->term_id; $menu.= '<li data-page = "' . $category_id . '" data-img = "' . nap_category_image($category_id) . '"><a href="' . get_term_link($cat->slug, 'product_cat') . '">' . $cat->name . '</a>'; $args2 = array( 'taxonomy' => $taxonomy, 'child_of' => 0, 'parent' => $category_id, 'orderby' => $orderby, 'show_count' => $show_count, 'pad_counts' => $pad_counts, 'hierarchical' => $hierarchical, 'title_li' => $title, 'hide_empty' => 1 ); $sub_cats = get_categories($args2); $menu.= ' <ul class = "subcat" data-page = "' . $category_id . '">'; if ($sub_cats) { $class = ''; foreach ($sub_cats as $key => $sub_category) { $subcat_name = explode(' ', $sub_category->name); if ($key == 0) $calss = 'active'; else $calss = ''; $menu.= '<li data-cover = "' . nap_category_image($sub_category->term_id) . '"><a class="' . $calss . '" href="#cat' . $sub_category->term_id . '">' . $subcat_name[1] . '</a></li>'; } } $menu.= '</ul></li>'; } } return $menu; } function nap_variation_url($variationID) { $variable_product = wc_get_product($variationID); $couleur = $variable_product->get_attribute('couleur'); $format = $variable_product->get_attribute('format'); $url = '?attribute_couleur=' . $couleur . '&attribute_format=' . $format . '&variation_id=' . $variationID; return preg_replace('/\s+/', '', $url); } function nap_variation_color($variationID) { $variable_product = wc_get_product($variationID); $term = get_term_by('name', $variable_product->get_attribute('couleur'), 'pa_couleur'); $termID = $term->term_id; $color = get_field('couleurs', 'pa_couleur_' . $termID); return $color; } function nap_distinct_color_variations($variations) { $var_colors = array(); foreach ($variations as $variation) : $variation_ID = $variation['variation_id']; $color = nap_variation_color($variation_ID); if (!in_array($color, $var_colors)): $var_colors[$variation_ID] = $color; endif; endforeach; return $var_colors; } function nap_get_item($post_ID, $args = null, $current_page = '', $options = null) { $link = $image = $size = ''; if (isset($options)) { if ($options['dwnldLink']) { $link = ' <a class = "circle-btn download-btn hidden-elem" download href="' . $options['dwnldLink'] . '"></a>'; } if ($options['image']) { $image = $options['image']; } if ($options['size']) { $size = $options['size']; } } $nap_article = '<article class = " visible row"> <a href="#"></a> <figure data-bg = "" class = "' . $size . ' transition"> <div class="abs-full article-bg transition"></div>'; $nap_article.= $link; $nap_article.='<img class="transition" src="' . $image . '" alt="" title="">'; if ($current_page == 'catalogue') : $nap_article .= '<ul class = "clearfix">'; $variations = get_posts($args); $temp_colors = array(); foreach ($variations as $key => $value) { $color = nap_variation_color($value->ID); if (!in_array($color, $temp_colors)) { $temp_colors[] = $color; $nap_article.='<li data-link = "' . get_permalink($post_ID) . nap_variation_url($value->ID) . '" data-image = "' . get_the_post_thumbnail_url($value->ID, 'thumbnail') . '" data-color = "' . $color . '"></li> '; } } $nap_article.='</ul>'; endif; $nap_article.='</figure> <h3 class = "font-small" >' . get_the_title($post_ID) . '</h3> </article>'; return $nap_article; } remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);