web-dev-qa-db-fra.com

Comment définir la valeur/le terme d'un champ de texte d'attribut Woocommerce dans le panneau d'administration?

Je développe un plugin qui est supposé remplir automatiquement le champ de texte d'attributs.

Il y a un champ de texte d'URL où l'utilisateur entre l'URL. Au moment de la focalisation, je déclenche un appel AJAX par lequel je peux sauvegarder les données, mais je cherche à accomplir ici pour afficher les données enregistrées sur les champs en surbrillance. ainsi que.

enter image description here

J'utilise le code suivant dans un crochet pour afficher:

if( function_exists( 'wc_get_attribute_taxonomies' ) && ( $attribute_taxonomies = wc_get_attribute_taxonomies() ) ) {

    $defaults = array();
    $name = wc_attribute_taxonomy_name( $tax->attribute_name );
    foreach ( $attribute_taxonomies as $key=>$tax ) {
                $defaults[ $name ] = array (
                    'name' => $name,
                    'value' => 'thisTextShouldAppearInHighlightedFieldsOfScreenShot',
                    'position' => $key+1,
                    'is_visible' => 1,
                    'is_variation' => 1,
                    'is_taxonomy' => 1,
                );

            update_post_meta( $post->ID , '_product_attributes', $defaults );
}

Toute aide serait grandement appréciée!

1
Faisal Ashfaq

Je suppose que l'ID de ce texte déposé est url-field voici le code JS

$("#url-field").keyup(function(event) {
     var url_val=$("#url-field").val();
      $.ajax({
            type:"POST",
            url: ajaxurl,
            data: {
                action:'use_someprefix_update_url',
                search_string:url_val,
                namefiled : namehere,
                postid : postidhereYouCangetItIHope  
            },
            success:function(data){
               alert("Success, you can remove me :-) ");
            }
        });
});

Voici PHP, mettez ceci dans functions.php

function use_someprefix_update_url(){
    $defaults = array();
    $defaults[ $_POST['namefiled'] ] = array (
                    'name' => $_POST['namefiled'],
                    'value' => $_POST['search_string'],
                );
     update_post_meta( $_POST['postid'] , '_product_attributes', $defaults );
}

Aussi ce crochet aussi:

add_action('wp_ajax_use_someprefix_update_url', 'use_someprefix_update_url');

P.S: Vous devez faire des choses de validation.

1
daniyalahmad