Champ dans la commande qui ne sauvegarde pas ! (Créer un compte)

  • Statut : non résolu
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #542639
    Mickael062
    Membre
    Initié WordPress
    34 contributions

    Ma configuration WP actuelle
    – Version de WordPress : 4.0
    – Version de PHP/MySQL : PHP/5.5.12 (localhost wamp )
    – Thème utilisé :
    – Extensions en place : woocommerce 2.2.4
    – Nom de l’hebergeur :
    – Adresse du site :

    Problème(s) rencontré(s) :

    Bonjour,
    Donc mon soucis est bizarre j’ai ajouté un champs complémentaire a la commande mais celle-ci ne ce sauvegarde pas.
    Je sais que le problème viens de jQuery :

    Mon thème est fait avec Artisteer, et à la racine il y a un fichier jquery.js, quand je le supprime, les boutons « ajouter au panier » ne sont plus en ajax, mais le champ personnalisé de la commande se sauvegarde. Donc je pense à un conflit jquery.

    Lorsque je suis sur la page commande et que le fichier jQuery.js est présent, au moment de passer commande le champ personnaliser à une bordure rouge s’il n’ai pas remplit mais le message d’erreur au haut de page n’ai pas présent et il me redirige vers la commande réussi.

    Sans le fichier jquery ça marche il me met bien le message d’erreur et enregistre la valeur dans bdd.Mais je perd les animation jquery de woocommerce.

    C’est assez compliqué à expliquer comme ça, n’hésitez pas à me donnez des suggestion car je coince vraiment sur ce coup là.
    Voici le code du champ perso :

    //**
    * Add the field to the checkout
    */
    add_action( ‘woocommerce_after_order_notes’, ‘my_custom_checkout_field’ );

    function my_custom_checkout_field( $checkout ) {

    echo ‘<div id="my_custom_checkout_field"><h2>‘ . __(‘My Field’) . ‘</h2>‘;

    woocommerce_form_field( ‘my_field_name’, array(
    ‘type’ => ‘text’,
    ‘class’ => array(‘my-field-class form-row-wide’),
    ‘label’ => __(‘Fill in this field’),
    ‘placeholder’ => __(‘Enter something’),
    ‘required’ => true,
    ), $checkout->get_value( ‘my_field_name’ ));

    echo ‘</div>‘;

    }



    /**
    * Process the checkout
    */
    add_action(‘woocommerce_checkout_process’, ‘my_custom_checkout_field_process’);

    function my_custom_checkout_field_process() {
    // Check if set, if its not set add an error.
    if ( ! $_POST[‘my_field_name’] )
    wc_add_notice( __( ‘Please enter something into this new shiny field.’ ), ‘error’ );
    }

    /**
    * Display field value on the order edit page
    */
    add_action( ‘woocommerce_admin_order_data_after_billing_address’, ‘my_custom_checkout_field_display_admin_order_meta’, 10, 1 );

    function my_custom_checkout_field_display_admin_order_meta($order){
    echo ‘<p><strong>‘.__(‘My Field’).’:</strong> ‘ . get_post_meta( $order->id, ‘My Field’, true ) . ‘</p>‘;
    }
    /**
    * Update the order meta with field value
    */
    add_action( ‘woocommerce_checkout_update_order_meta’, ‘my_custom_checkout_field_update_order_meta’ );

    function my_custom_checkout_field_update_order_meta( $order_id ) {
    if ( ! empty( $_POST[‘my_field_name’] ) ) {
    update_post_meta( $order_id, ‘My Field’, sanitize_text_field( $_POST[‘my_field_name’] ) );
    }
    }

    Et mon fichier fonction.php avec le code :

    <?php
    define('THEME_NAME', "untitled");
    global $wp_version;
    define('WP_VERSION', $wp_version);
    define('THEME_NS', 'twentyten');
    define('THEME_LANGS_FOLDER', '/languages');

    load_theme_textdomain(THEME_NS, TEMPLATEPATH . THEME_LANGS_FOLDER);


    if (function_exists('mb_internal_encoding')) {
    mb_internal_encoding(get_bloginfo('charset'));
    }
    if (function_exists('mb_regex_encoding')) {
    mb_regex_encoding(get_bloginfo('charset'));
    }

    if (WP_VERSION < 3.0) {
    add_action('admin_notices', 'theme_unsupported_version_notice1');
    add_action('wp_head', 'theme_unsupported_version_notice2');
    function theme_unsupported_version_notice1() {
    ?>
    <div id='theme-warning' class='error fade'><p><strong><?php _e('Current theme requires WordPress 3.0 or higher.', THEME_NS); ?></strong>
    <?php
    echo sprintf(__('Please <a href="%s">upgrade WordPress</a>, or <a href="%s">use an earlier version of Artisteer (2.6 – 3.1)</a> to create themes for WordPress 2.6-2.9.’, THEME_NS),
    ‘http://codex.wordpress.org/Upgrading_WordPress’, ‘http://www.artisteer.com/Default.aspx?p=license_info’);
    ?>
    </p></div>
    <?php
    }
    function theme_unsupported_version_notice2() {
    ?>
    </head>
    <body>
    <strong><?php _e('Current theme requires WordPress 3.0 or higher.', THEME_NS); ?></strong>
    <?php
    echo sprintf(__('Please <a href="%s">upgrade WordPress</a>, or <a href="%s">use an earlier version of Artisteer (2.6 – 3.1)</a> to create themes for WordPress 2.6-2.9.’, THEME_NS),
    ‘http://codex.wordpress.org/Upgrading_WordPress’, ‘http://www.artisteer.com/Default.aspx?p=license_info’);
    ?>
    </body>
    </html>
    <?php
    die();
    }
    return;
    }

    theme_include_lib('defaults.php');
    theme_include_lib('misc.php');
    theme_include_lib('wrappers.php');
    theme_include_lib('sidebars.php');
    theme_include_lib('navigation.php');
    theme_include_lib('shortcodes.php');
    theme_include_lib('widgets.php');

    function theme_favicon() {
    if (is_file(TEMPLATEPATH . '/favicon.ico')):
    ?><link rel="shortcut icon" href="<?php bloginfo('template_directory'); ?>/favicon.ico » /><?php
    endif;
    }

    add_action('wp', 'theme_init_layout');
    add_action('wp_head', 'theme_favicon');
    add_action('wp_head', 'theme_update_page_meta');
    add_action('wp_enqueue_scripts', 'theme_update_scripts', 1000);
    add_action('wp_enqueue_scripts', 'theme_update_styles', 1000);
    add_action('wp_print_scripts', 'theme_update_jquery_scripts', 1000);
    add_action('wp_head', 'theme_update_posts_styles', 1000);
    add_action('wp_head', 'theme_header_image_script');
    add_action('admin_head', 'theme_favicon');
    add_action('login_head', 'theme_favicon');

    add_filter( 'wp_title', 'theme_update_title',1,3);
    add_action('media_upload_image_header', 'wp_media_upload_handler');

    function theme_header_rel_link() {
    if (theme_get_option('theme_header_clickable')):
    ?><link rel='home' href='<?php echo esc_url(theme_get_option('theme_header_link')); ?>‘ /><?php
    endif;
    }
    add_action('wp_head', 'theme_header_rel_link');
    add_action('login_head', 'theme_header_rel_link');

    add_theme_support('post-thumbnails');
    add_theme_support('nav-menus');
    add_theme_support('automatic-feed-links');
    add_theme_support('post-formats', array('aside', 'gallery'));

    register_nav_menus(array('primary-menu' => __(‘Primary Navigation’, THEME_NS)));


    function theme_wp_title( $title, $sep ) {
    global $paged, $page;
    if ( is_feed() ) {
    return $title;
    }
    $title .= get_bloginfo( ‘name’ );
    $site_description = get_bloginfo( ‘description’, ‘display’ );
    if ( $site_description && ( is_home() || is_front_page() ) ) {
    $title = « $title $sep $site_description »;
    }
    if ( $paged >= 2 || $page >= 2 ) {
    $title = « $title $sep  » . sprintf( __( ‘Page %s’, THEME_NS ), max( $paged, $page ) );
    }
    return $title;
    }
    add_filter( ‘wp_title’, ‘theme_wp_title’, 10, 2 );

    function theme_header_image_script() {
    $theme_header_image = theme_get_meta_option(get_queried_object_id(), ‘theme_header_image’);
    if ($theme_header_image) {
    ?>
    <style>
    .art-header {
    background-image : url(<?php echo $theme_header_image; ?>) !important;
    background-position : center center !important;
    }
    </style>
    <script>
    var customHeaderImage = true;
    </script>
    <?php
    }
    }

    function theme_has_header_image() {
    return (bool) theme_get_meta_option(get_queried_object_id(), 'theme_header_image');
    }
    function theme_show_flash() {
    return (bool) theme_get_meta_option(get_queried_object_id(), 'theme_header_image_with_flash');
    }

    function theme_init_layout() {
    global $theme_layout;
    $theme_layout = array(
    'header' => 1,
    ‘default_sidebar’ => 1,

    );
    $page_id = 0;
    if (is_page()) {
    $page_id = (int)theme_get_the_ID();
    }
    if (is_home()) {
    $posts_page_id = (int)get_option( ‘page_for_posts’);
    if ($posts_page_id > 0) {
    $page_id = $posts_page_id;
    }
    }
    if ($page_id > 0) {
    foreach ($theme_layout as $layout_part_name => $included) {
    $theme_layout[$layout_part_name] = theme_get_meta_option($page_id, ‘theme_layout_template_’ . $layout_part_name);
    }
    }
    if(is_attachment()) {
    $theme_layout[‘default_sidebar’] = 0;

    }
    }

    function theme_has_layout_part($name) {
    global $theme_layout;
    return (bool) theme_get_array_value($theme_layout, $name);
    }

    if (is_admin()) {
    theme_include_lib(‘options.php’);
    theme_include_lib(‘admins.php’);

    function theme_add_option_page() {
    add_theme_page(__(‘Theme Options’, THEME_NS), __(‘Theme Options’, THEME_NS), ‘edit_theme_options’, basename(__FILE__), ‘theme_print_options’);
    }

    add_action(‘admin_menu’, ‘theme_add_option_page’);
    add_action(‘sidebar_admin_setup’, ‘theme_widget_process_control’);
    add_filter(‘widget_update_callback’, ‘theme_update_widget_additional’);
    add_action(‘add_meta_boxes’, ‘theme_add_meta_boxes’);
    add_action(‘save_post’, ‘theme_save_post’);
    add_filter( ‘wp_default_editor’, ‘theme_wp_default_editor’ );
    add_filter( ‘admin_footer’, ‘theme_admin_footer’, 99);

    function theme_wp_default_editor($content){
    if(isset($_GET[‘post’]) && !theme_get_meta_option($_GET[‘post’], ‘theme_use_wpautop’)){
    return ‘html’;
    }
    return $content;
    }

    function theme_admin_footer(){
    if(isset($_GET[‘post’]) && !theme_get_meta_option($_GET[‘post’], ‘theme_use_wpautop’)){
    echo ‘ <script type="text/javascript">

    jQuery(function($){
    $('#content-tmce').click(function(){
    if (!$('#theme_use_wpautop')[0].checked) {
    if ($('#save-alert').length < 1) {
    $('#titlediv').after('<div id="save-alert" class="updated below-h2"><p><strong>Warning:</strong> Saving after switching to Visual mode can break the page layout (<a href="http://codex.wordpress.org/Function_Reference/wpautop">wpautop</a> enabled).</p></div>');
    }
    $('#theme_use_wpautop')[0].checked = true;
    }
    });
    });
    </script>‘;
    }
    }

    if (file_exists(TEMPLATEPATH . ‘/content/content-importer.php’)) {
    include(TEMPLATEPATH . ‘/content/content-importer.php’);
    }
    return;
    }

    function theme_update_scripts() {
    global $wp_scripts;
    wp_register_script(‘jquery_migrate’, get_bloginfo(‘template_url’, ‘display’) . ‘/jquery-migrate-1.1.1.js’, array(‘jquery’));
    wp_enqueue_script(‘jquery_migrate’);
    wp_register_script(« script.js », get_bloginfo(‘template_url’, ‘display’) . ‘/script.js’, array(‘jquery’));
    wp_enqueue_script(« script.js »);
    wp_register_script(« script.responsive.js », get_bloginfo(‘template_url’, ‘display’) . ‘/script.responsive.js’, array(‘jquery’));
    wp_enqueue_script(« script.responsive.js »);

    }

    function theme_update_jquery_scripts() {
    if(is_admin()) {
    return;
    }
    wp_deregister_script(‘jquery’);
    if (theme_get_option(‘theme_include_scripts_from_cdn’)) {
    wp_register_script(‘jquery’, ‘https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js’);
    } else {
    wp_register_script(‘jquery’, get_bloginfo(‘template_url’, ‘display’) . ‘/jquery.js’);
    }
    }

    function theme_update_styles() {
    global $wp_styles;
    wp_register_style(« style.ie7.css », get_bloginfo(‘template_url’, ‘display’) . ‘/style.ie7.css’, array(), false, « screen »);
    wp_enqueue_style(« style.ie7.css »);
    $wp_styles->add_data(« style.ie7.css », « conditional », « lte IE 7 »);
    wp_register_style(« style.responsive.css », get_bloginfo(‘template_url’, ‘display’) . ‘/style.responsive.css’, array(), false, « all »);
    wp_enqueue_style(« style.responsive.css »);

    }

    function theme_update_title($title, $sep, $seplocation) {
    global $wp_query;
    $post_id = get_queried_object_id();
    if ($post_id == 0 && theme_is_home()) {
    $post_id = get_option(‘page_for_posts’);
    }
    $meta_title = get_post_meta($post_id, ‘page_title’, true);
    if (!empty($meta_title)) {
    $title = ( ‘right’ == $seplocation ? $meta_title .  » $sep  » :  » $sep  » . $meta_title);
    }
    return $title;
    }

    function theme_update_page_meta() {
    global $wp_query;
    $res =  »;
    $post_id = get_queried_object_id();
    if ($post_id == 0 && theme_is_home()) {
    $post_id = get_option(‘page_for_posts’);
    }
    $description = get_post_meta($post_id, ‘page_description’, true);
    if (!empty($description)) {
    $res .= « <meta name="description" content="$description">n »;
    }
    $keywords = get_post_meta($post_id, ‘page_keywords’, true);
    if (!empty($keywords)) {
    $res .= « <meta name="keywords" content="$keywords">n »;
    }
    $metaTags = get_post_meta($post_id, ‘page_metaTags’, true);
    if (!empty($metaTags)) {
    $res .= $metaTags . « n »;
    }
    if (!empty($res)) {
    echo « n » . $res;
    }

    $hasCustomHeadHtml = get_post_meta($post_id, ‘page_hasCustomHeadHtml’, true);
    if ($hasCustomHeadHtml === ‘true’){
    $customHeadHtml = get_post_meta($post_id, ‘page_customHeadHtml’, true);
    echo $customHeadHtml . « n »;
    } else {
    ?>



    <?php
    }
    }

    function theme_update_posts_styles() {
    global $wp_query;
    $res = '';
    if(!is_singular()) {
    $post_id = get_queried_object_id();
    if ($post_id == 0 && theme_is_home()) {
    $post_id = get_option('page_for_posts');
    }
    $res .= get_post_meta($post_id, 'theme_head', true);
    }
    while ($wp_query->have_posts()) {
    the_post();
    $post_id = theme_get_the_ID();
    $res .= get_post_meta($post_id, ‘theme_head’, true);
    }
    if (!empty($res)) {
    echo $res;
    }
    wp_reset_postdata();
    }

    function theme_get_option($name) {
    global $theme_default_options;
    $result = get_option($name);
    if ($result === false) {
    $result = theme_get_array_value($theme_default_options, $name);
    }
    return $result;
    }



    function theme_get_widget_meta_option($widget_id, $name) {
    global $theme_default_meta_options;
    if (!preg_match(‘/^(.*[^-])-([0-9]+)$/’, $widget_id, $matches) || !isset($matches[1]) || !isset($matches[2])) {
    return theme_get_array_value($theme_default_meta_options, $name);
    }
    $type = $matches[1];
    $id = $matches[2];
    $wp_widget = get_option(‘widget_’ . $type);
    if (!$wp_widget || !isset($wp_widget[$id])) {
    return theme_get_array_value($theme_default_meta_options, $name);
    }
    if (!isset($wp_widget[$id][$name])) {
    $wp_widget[$id][$name] = theme_get_array_value(get_option($name), $widget_id, theme_get_array_value($theme_default_meta_options, $name));
    }
    return $wp_widget[$id][$name];
    }

    function theme_set_widget_meta_option($widget_id, $name, $value) {
    if (!preg_match(‘/^(.*[^-])-([0-9]+)$/’, $widget_id, $matches) || !isset($matches[1]) || !isset($matches[2])) {
    return;
    }
    $type = $matches[1];
    $id = $matches[2];
    $wp_widget = get_option(‘widget_’ . $type);
    if (!$wp_widget || !isset($wp_widget[$id])) {
    return;
    }
    $wp_widget[$id][$name] = $value;
    update_option(‘widget_’ . $type, $wp_widget);
    }

    function theme_get_meta_option($id, $name) {
    global $theme_default_meta_options;
    if (!is_numeric($id)) {
    return theme_get_array_value($theme_default_meta_options, $name);
    }
    $value = get_post_meta($id, ‘_’ . $name, true);
    if ( » === $value) {
    $value = theme_get_array_value(get_option($name), $id, theme_get_array_value($theme_default_meta_options, $name));
    theme_set_meta_option($id, $name, $value);
    }
    return $value;
    }

    function theme_set_meta_option($id, $name, $value) {
    update_post_meta($id, ‘_’ . $name, $value);
    }

    function theme_get_post_id() {
    $post_id = theme_get_the_ID();
    if ($post_id !=  ») {
    $post_id = ‘post-‘ . $post_id;
    }
    return $post_id;
    }

    function theme_get_the_ID() {
    global $post;
    return $post->ID;
    }

    function theme_get_post_class() {
    return implode(‘ ‘, get_post_class());
    }

    function theme_include_lib($name) {
    locate_template(array(‘library/’ . $name), true);
    }

    function theme_get_metadata_icons($icons =  », $class =  ») {
    global $post;
    if (!is_string($icons) || theme_strlen($icons) == 0)
    return;
    $icons = explode(« , », str_replace(‘ ‘,  », $icons));
    if (!is_array($icons) || count($icons) == 0)
    return;
    $result = array();
    for ($i = 0; $i < count($icons); $i++) {
    $icon = $icons[$i];
    switch ($icon) {
    case 'date':
    $result[] = '<span class="art-postdateicon">‘ . sprintf(__(‘<span class="%1$s">Published</span> %2$s’, THEME_NS),
    ‘date’,
    sprintf( ‘<span class="entry-date updated" title="%1$s">%2$s</span>‘,
    esc_attr( get_the_time() ),
    get_the_date()
    )
    ) . ‘</span>‘;
    break;
    case ‘author’:
    $result[] = ‘<span class="art-postauthoricon">‘ . sprintf(__(‘<span class="%1$s">By</span> %2$s’, THEME_NS),
    ‘author’,
    sprintf( ‘<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s">%3$s</a></span>‘,
    get_author_posts_url( get_the_author_meta( ‘ID’ ) ),
    sprintf( esc_attr(__( ‘View all posts by %s’, THEME_NS )), get_the_author() ),
    get_the_author()
    )
    ) . ‘</span>‘;
    break;
    case ‘category’:
    $categories = get_the_category_list(‘, ‘);
    if (theme_strlen($categories) == 0)
    break;
    $result[] = ‘<span class="art-postcategoryicon">‘ . sprintf(__(‘<span class="%1$s">Posted in</span> %2$s’, THEME_NS), ‘categories’, get_the_category_list(‘, ‘)) . ‘</span>‘;
    break;
    case ‘tag’:
    $tags_list = get_the_tag_list( », ‘, ‘);
    if (!$tags_list)
    break;
    $result[] = ‘<span class="art-posttagicon">‘ . sprintf(__(‘<span class="%1$s">Tagged</span> %2$s’, THEME_NS), ‘tags’, $tags_list) . ‘</span>‘;
    break;
    case ‘comments’:
    if (!comments_open() || !theme_get_option(‘theme_allow_comments’))
    break;
    theme_ob_start();
    comments_popup_link(__(‘Leave a comment’, THEME_NS), __(‘1 Comment’, THEME_NS), __(‘% Comments’, THEME_NS));
    $result[] = ‘<span class="art-postcommentsicon">‘ . theme_ob_get_clean() . ‘</span>‘;
    break;
    case ‘edit’:
    if (!current_user_can(‘edit_post’, $post->ID))
    break;
    theme_ob_start();
    edit_post_link(__(‘Edit’, THEME_NS),  »);
    $result[] = ‘<span class="art-postediticon">‘ . theme_ob_get_clean() . ‘</span>‘;
    break;
    }
    }
    $result = implode(theme_get_option(‘theme_metadata_separator’), $result);
    if (theme_is_empty_html($result))
    return;
    return « <div class="art-post{$class}icons art-metadata-icons">{$result}</div>« ;
    }

    function theme_get_post_thumbnail($args = array()) {
    global $post;

    $size = theme_get_array_value($args, ‘size’, array(theme_get_option(‘theme_metadata_thumbnail_width’), theme_get_option(‘theme_metadata_thumbnail_height’)));
    $auto = theme_get_array_value($args, ‘auto’, theme_get_option(‘theme_metadata_thumbnail_auto’));
    $featured = theme_get_array_value($args, ‘featured’, theme_get_option(‘theme_metadata_use_featured_image_as_thumbnail’));
    $title = theme_get_array_value($args, ‘title’, get_the_title());


    $result =  »;

    if ($featured && (has_post_thumbnail())) {
    theme_ob_start();
    the_post_thumbnail($size, array(‘alt’ =>  », ‘title’ => $title));
    $result = theme_ob_get_clean();
    } elseif ($auto) {
    $attachments = get_children(array(‘post_parent’ => $post->ID, ‘post_status’ => ‘inherit’, ‘post_type’ => ‘attachment’, ‘post_mime_type’ => ‘image’, ‘order’ => ‘ASC’, ‘orderby’ => ‘menu_order ID’));
    if ($attachments) {
    $attachment = array_shift($attachments);
    $img = wp_get_attachment_image_src($attachment->ID, $size);
    if (isset($img[0])) {
    $result = ‘<img src="' . $img[0] . '" alt="" width="' . $img[1] . '" height="' . $img[2] . '" title="' . $title . '" class="wp-post-image" />‘;
    }
    }
    }
    if ($result !==  ») {
    $result = ‘<div class="alignleft"><a href="' . get_permalink($post->ID) . ‘ » title= »‘ . $title . ‘ »>’ . $result . ‘</a></div>‘;
    }
    return $result;
    }

    function theme_get_content($args = array()) {
    global $wp_query;
    $post_id = get_queried_object_id();
    $more_tag = theme_get_array_value($args, ‘more_tag’, __(‘Continue reading <span class="meta-nav">→</span>‘, THEME_NS));
    $ignore_wpautop = ( theme_get_meta_option($post_id, ‘theme_use_wpautop’) === ‘0’ );
    if ($ignore_wpautop) {
    remove_filter( ‘the_content’, ‘wpautop’ );
    }
    theme_ob_start();
    the_content($more_tag);
    $content = theme_ob_get_clean();
    if ($ignore_wpautop) {
    add_filter( ‘the_content’, ‘wpautop’ );
    }
    return $content . wp_link_pages(array(
    ‘before’ => ‘<p><span class="page-navi-outer page-navi-caption"><span class="page-navi-inner">‘ . __(‘Pages’, THEME_NS) . ‘: </span></span>‘,
    ‘after’ => ‘</p>‘,
    ‘link_before’ => ‘<span class="page-navi-outer"><span class="page-navi-inner">‘,
    ‘link_after’ => ‘</span></span>‘,
    ‘echo’ => 0
    ));
    }

    function theme_get_excerpt($args = array()) {
    global $post;
    $more_tag = theme_get_array_value($args, ‘more_tag’, __(‘Continue reading <span class="meta-nav">→</span>‘, THEME_NS));
    $auto = theme_get_array_value($args, ‘auto’, theme_get_option(‘theme_metadata_excerpt_auto’));
    $all_words = theme_get_array_value($args, ‘all_words’, theme_get_option(‘theme_metadata_excerpt_words’));
    $min_remainder = theme_get_array_value($args, ‘min_remainder’, theme_get_option(‘theme_metadata_excerpt_min_remainder’));
    $allowed_tags = theme_get_array_value($args, ‘allowed_tags’,
    (theme_get_option(‘theme_metadata_excerpt_use_tag_filter’)
    ? explode(‘,’,str_replace(‘ ‘,  », theme_get_option(‘theme_metadata_excerpt_allowed_tags’)))
    : null));
    $perma_link = get_permalink($post->ID);
    $more_token = ‘%%theme_more%%’;
    $show_more_tag = false;
    $tag_disbalance = false;
    if (post_password_required($post)) {
    return get_the_excerpt();
    }
    if ($auto && has_excerpt($post->ID)) {
    $excerpt = get_the_excerpt();
    $show_more_tag = theme_strlen($post->post_content) > 0;
    } else {
    $excerpt = get_the_content($more_token);
    // hack for badly written plugins
    theme_ob_start();
    echo apply_filters(‘the_content’, $excerpt);
    $excerpt = theme_ob_get_clean();
    global $multipage;
    if ($multipage && theme_strpos($excerpt, $more_token) === false) {
    $show_more_tag = true;
    }
    if (theme_is_empty_html($excerpt))
    return $excerpt;
    if ($allowed_tags !== null) {
    $allowed_tags = ‘<' . implode('><', $allowed_tags) . '>‘;
    $excerpt = strip_tags($excerpt, $allowed_tags);
    }
    if (theme_strpos($excerpt, $more_token) !== false) {
    $excerpt = str_replace($more_token, $more_tag, $excerpt);
    } elseif ($auto && is_numeric($all_words)) {
    $token = « %theme_tag_token% »;
    $content_parts = explode($token, str_replace(array(‘<', '>‘), array($token . ‘<', '>‘ . $token), $excerpt));
    $content = array();
    $word_count = 0;
    foreach ($content_parts as $part) {
    if (theme_strpos($part, ‘<') !== false || theme_strpos($part, '>‘) !== false) {
    $content[] = array(‘type’ => ‘tag’, ‘content’ => $part);
    } else {
    $all_chunks = preg_split(‘/([s])/u’, $part, -1, PREG_SPLIT_DELIM_CAPTURE);
    foreach ($all_chunks as $chunk) {
    if ( » != trim($chunk)) {
    $content[] = array(‘type’ => ‘word’, ‘content’ => $chunk);
    $word_count += 1;
    } elseif ($chunk !=  ») {
    $content[] = array(‘type’ => ‘space’, ‘content’ => $chunk);
    }
    }
    }
    }

    if (($all_words < $word_count) && ($all_words + $min_remainder) <= $word_count) {
    $show_more_tag = true;
    $tag_disbalance = true;
    $current_count = 0;
    $excerpt = '';
    foreach ($content as $node) {
    if ($node['type'] == 'word') {
    $current_count++;
    }
    $excerpt .= $node['content'];
    if ($current_count == $all_words) {
    break;
    }
    }
    $excerpt .= '…'; // ...
    }
    }
    }
    if ($show_more_tag) {
    $excerpt = $excerpt . ' <a class="more-link" href="' . $perma_link . '">‘ . $more_tag . ‘</a>‘;
    }
    if ($tag_disbalance) {
    $excerpt = force_balance_tags($excerpt);
    }
    return $excerpt;
    }

    function theme_get_search() {
    theme_ob_start();
    get_search_form();
    return theme_ob_get_clean();
    }

    function theme_is_home() {
    return (is_home() && !is_paged());
    }

    function theme_404_content($args =  ») {
    $args = wp_parse_args($args, array(
    ‘error_title’ => __(‘Not Found’, THEME_NS),
    ‘error_message’ => __(‘Apologies, but the page you requested could not be found. Perhaps searching will help.’, THEME_NS),
    ‘focus_script’ => ‘<script type="text/javascript">jQuery('div.art-content input[name="s"]').focus();</script>‘
    )
    );
    extract($args);
    theme_post_wrapper(
    array(
    ‘title’ => $error_title,
    ‘content’ => ‘<p class="center">‘ . $error_message . ‘</p>‘ . « n » . theme_get_search() . $focus_script
    )
    );

    if (theme_get_option(‘theme_show_random_posts_on_404_page’)) {
    theme_ob_start();
    echo ‘<h4 class="box-title">‘ . theme_get_option(‘theme_show_random_posts_title_on_404_page’) . ‘</h4>‘;
    ?>
    <ul>
    <?php
    global $post;
    $rand_posts = get_posts('numberposts=5&orderby=rand');
    foreach ($rand_posts as $post) :
    ?>
    <li><a href="<?php the_permalink(); ?>« ><?php the_title(); ?></a></li>
    <?php endforeach; ?>
    </ul>
    <?php
    theme_post_wrapper(array('content' => theme_ob_get_clean()));
    }
    if (theme_get_option(‘theme_show_tags_on_404_page’)) {
    theme_ob_start();
    echo ‘<h4 class="box-title">‘ . theme_get_option(‘theme_show_tags_title_on_404_page’) . ‘</h4>‘;
    wp_tag_cloud(‘smallest=9&largest=22&unit=pt&number=200&format=flat&orderby=name&order=ASC’);
    theme_post_wrapper(array(‘content’ => theme_ob_get_clean()));
    }
    }

    function theme_page_navigation() {
    global $wp_query;
    $total_pages = $wp_query->max_num_pages;
    if($total_pages > 1) {
    echo theme_stylize_pagination(paginate_links(array(
    ‘base’ => str_replace(PHP_INT_MAX, ‘%#%’, get_pagenum_link(PHP_INT_MAX)),
    ‘format’ =>  »,
    ‘current’ => max(1, get_query_var(‘paged’)),
    ‘total’ => $total_pages
    )));
    }
    }

    function theme_post_navigation($args =  ») {
    $args = wp_parse_args($args, array(‘wrap’ => true, ‘prev_link’ => false, ‘next_link’ => false));
    $prev_link = $args[‘prev_link’];
    $next_link = $args[‘next_link’];
    $content =  »;
    $prev_align = ‘left’;
    $next_align = ‘right’;
    if (is_rtl()) {
    $prev_align = ‘right’;
    $next_align = ‘left’;
    }
    if ($prev_link || $next_link) {
    $content = <<<EOL
    <div class="navigation">
    <div class="align{$prev_align}">{$prev_link}</div>
    <div class="align{$next_align}">{$next_link}</div>
    </div>
    EOL;
    }
    if ($args[‘wrap’]) {
    theme_post_wrapper(array(‘content’ => $content));
    } else {
    echo $content;
    }
    }

    function theme_get_previous_post_link($format = ‘« %link’, $link = ‘%title’, $in_same_cat = false, $excluded_categories =  ») {
    return theme_get_adjacent_post_link($format, $link, $in_same_cat, $excluded_categories, true);
    }

    function theme_get_next_post_link($format = ‘%link »’, $link = ‘%title’, $in_same_cat = false, $excluded_categories =  ») {
    return theme_get_adjacent_post_link($format, $link, $in_same_cat, $excluded_categories, false);
    }

    function theme_get_adjacent_image_link($prev = true, $size = ‘thumbnail’, $text = false) {
    global $post;
    $post = get_post($post);
    $attachments = array_values(get_children(array(‘post_parent’ => $post->post_parent, ‘post_status’ => ‘inherit’, ‘post_type’ => ‘attachment’, ‘post_mime_type’ => ‘image’, ‘order’ => ‘ASC’, ‘orderby’ => ‘menu_order ID’)));

    foreach ($attachments as $k => $attachment)
    if ($attachment->ID == $post->ID)
    break;

    $k = $prev ? $k – 1 : $k + 1;

    if (isset($attachments[$k]))
    return wp_get_attachment_link($attachments[$k]->ID, $size, true, false, $text);
    }

    function theme_get_previous_image_link($size = ‘thumbnail’, $text = false) {
    $result = theme_get_adjacent_image_link(true, $size, $text);
    if ($result)
    $result = ‘« ‘ . $result;
    return $result;
    }

    function theme_get_next_image_link($size = ‘thumbnail’, $text = false) {
    $result = theme_get_adjacent_image_link(false, $size, $text);
    if ($result)
    $result .= ‘ »’;
    return $result;
    }

    function theme_get_adjacent_post_link($format, $link, $in_same_cat = false, $excluded_categories =  », $previous = true) {
    if ($previous && is_attachment())
    $post = & get_post($GLOBALS[‘post’]->post_parent);
    else
    $post = get_adjacent_post($in_same_cat, $excluded_categories, $previous);

    if (!$post)
    return;

    $title = strip_tags($post->post_title);

    if (empty($post->post_title))
    $title = $previous ? __(‘Previous Post’, THEME_NS) : __(‘Next Post’, THEME_NS);

    $title = apply_filters(‘the_title’, $title, $post->ID);
    $short_title = $title;
    if (theme_get_option(‘theme_single_navigation_trim_title’)) {
    $short_title = theme_trim_long_str($title, theme_get_option(‘theme_single_navigation_trim_len’));
    }
    $date = mysql2date(get_option(‘date_format’), $post->post_date);
    $rel = $previous ? ‘prev’ : ‘next’;

    $string = ‘<a href="' . get_permalink($post) . '" title="' . esc_attr($title) . '" rel="' . $rel . '">‘;
    $link = str_replace(‘%title’, $short_title, $link);
    $link = str_replace(‘%date’, $date, $link);
    $link = $string . $link . ‘</a>‘;

    $format = str_replace(‘%link’, $link, $format);

    $adjacent = $previous ? ‘previous’ : ‘next’;
    return apply_filters(« {$adjacent}_post_link », $format, $link);
    }


    function theme_stylize_pagination($pagination) {
    if ($pagination) {
    $pagination = ‘<div class="art-pager">‘ . str_replace(array(‘current’, ‘dots’), array(‘current active’, ‘dots more’), $pagination) . ‘</div>‘;
    }
    return $pagination;
    }

    function theme_comment_reply_link_filter($link) {
    return str_replace(‘class= », ‘class=’art-button ‘, $link);
    }

    add_filter(‘comment_reply_link’, ‘theme_comment_reply_link_filter’);


    function theme_comment($comment, $args, $depth) {
    $GLOBALS[‘comment’] = $comment;
    switch ($comment->comment_type) :
    case  » :
    ?>
    <li <?php comment_class(); ?> id= »li-comment-<?php comment_ID(); ?>« >
    <div class="art-comment <?php echo $comment->comment_type ?> clearfix » id= »comment-<?php comment_ID() ?>« >
    <div class="art-comment-avatar"><?php echo str_replace (array('height="150"', 'width="150"', "height='150'", "width='150'"), array('height="100%"', 'width="100%"', "height='100%'", "width='100%'"), theme_get_avatar(array('id' => $comment, ‘size’ => 150))); ?></div>
    <div class="art-comment-inner">
    <div class="art-comment-header comment-meta commentmetadata"><?php printf(__('%s on ', THEME_NS), get_comment_author_link($comment->comment_ID)); ?>
    <a href="<?php echo esc_url(get_comment_link($comment->comment_ID)); ?> »><?php printf(__('%1$s at %2$s', THEME_NS), get_comment_date(), get_comment_time()); ?></a>
    <?php edit_comment_link(__('(Edit)', THEME_NS)); ?></div>
    <div class="art-comment-content comment-body"><?php if ($comment->comment_approved == ‘0’) : ?>
    <em><?php _e('Your comment is awaiting moderation.', THEME_NS); ?></em>
    <br />
    <?php endif; ?>
    <?php comment_text(); ?></div>
    <div class="art-comment-footer reply"><?php comment_reply_link(array_merge($args, array('depth' => $depth, ‘max_depth’ => $args[‘max_depth’]))); ?></div>

false, ‘size’ => 96, ‘default’ => $default, ‘alt’ => false, ‘url’ => false));
extract($args);
$result = get_avatar($id, $size, $default, $alt);
if ($result) {
if ($url) {
$result = ‘‘ . $result . ‘‘;
}
}
return $result;
}

if (!function_exists(‘get_post_format’)) {//for WP 3.0
function get_post_format() {
return null;
}
}

if (!function_exists(‘get_queried_object_id’)) {//for WP 3.0
function get_queried_object_id() {
global $wp_query;
return $wp_query->get_queried_object_id();
}
}

function theme_get_next_post() {
static $ended = false;
if (!$ended) {
if (have_posts()) {
the_post();
get_template_part(‘content’, get_post_format());
} else {
$ended = true;
}
}
}

function theme_ob_start() {
ob_start();
}

function theme_ob_get_clean() {
return ob_get_clean();
}
/**
* Add the field to the checkout
*/
add_action( ‘woocommerce_after_order_notes’, ‘my_custom_checkout_field’ );

function my_custom_checkout_field( $checkout ) {

echo ‘

‘ . __(‘My Field’) . ‘

‘;

woocommerce_form_field( ‘my_field_name’, array(
‘type’ => ‘text’,
‘class’ => array(‘my-field-class form-row-wide’),
‘label’ => __(‘Fill in this field’),
‘placeholder’ => __(‘Enter something’),
), $checkout->get_value( ‘my_field_name’ ));

echo ‘

‘;

}

Merci de votre aide
Mike

#975065
Mickael062
Membre
Initié WordPress
34 contributions

Bonjour à tous,

J’ai une soluce qui marche ! Ouf 😋

J’ai simplement collé le code en haut du fichier function.php ( ligne 10) et tous fonctionne correctement.
Je pense que certaines fonctions du thème devaient être exécutées après l’ajout du champ.

A moins que vous ayez une autre idée car je voudrai vraiment savoir le pourquoi du comment.
@+

#975066
didier07
Participant
Maître WordPress
1964 contributions
Mickael062 wrote:
Je pense que certaines fonctions du thème devaient être exécutées après l’ajout du champ.

Le theme est chargé avant tout affichage, donc l’explication n’est pas là à mon avis

Didier

#975067
Mickael062
Membre
Initié WordPress
34 contributions

Si tu as raison je trouve ça angoissant, car c’ était la seule hypothèse que j’avais 😮
Le fichier ajoute les autres fichiers, les js, jquery…. dans un certaine ordre pour obtenir un affichage en cascade donc je supposait que la fonction d’ajout du champ devait se faire avant autre chose.?😉

Si ma réflexion n’est pas bonne peut tu m’orientè sur une piste plus cohérente?
Merci

#975068
didier07
Participant
Maître WordPress
1964 contributions

Si c’est une question d’ordre des fichier jaascript, il faut que tu regarde le :codex: sur la fonction wp_enqueue_sctipt qui gérè l’ordre par les dépendances des fichiers les uns aux autres

#975069
Mickael062
Membre
Initié WordPress
34 contributions

HAaaaaa Le :codex: une véritable histoire ça……

Dommage qu’il ne font pas en français ça serai plus simple enfin je pense 🙂
Je me pencherai sur ça se week end pour comprendre le probléme et je donnerai des news dés que je trouve.
En tout cas merci de tes réponses.

#975070
didier07
Participant
Maître WordPress
1964 contributions
Mickael062 wrote:
HAaaaaa Le :codex: une véritable histoire ça……

La bible 😆

Mickael062 wrote:
En tout cas merci de tes réponses.

De rien

🍺

#975071
espoontintin
Participant
Maître WordPress
816 contributions

Je propose, s’il n’y a qu’un custom field à rajouter, d’installer le plugin « Conditional Woo Checkout Field ».
Il fait ça très bien sur woocommerce. Mais pour un seul champ personnalisable malheureusement.
Sinon il faut taper du code dans le checkout.php
J’ai déjà donné la solution dans un autre dialogue

8 sujets de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.