web-dev-qa-db-de.com

Wie wird der Wert/die Laufzeit eines Woocommerce-Attribut-Textfelds im Admin-Bereich festgelegt?

Ich entwickle ein Plugin, das das Textfeld Attribute automatisch ausfüllen soll.

Es gibt ein URL-Textfeld, in das der Benutzer die URL eingibt. Beim Fokussieren löse ich einen AJAX -Aufruf aus, über den ich die Daten speichern kann. Hier möchte ich jedoch die gespeicherten Daten in markierten Feldern anzeigen auch.

enter image description here

Ich verwende folgenden Code in einem Hook, um anzuzeigen:

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 );
}

Jede Hilfe wäre sehr dankbar!

1
Faisal Ashfaq

Ich gehe davon aus, dass die ID des abgelegten Textes ist. URL-Feld Hier ist der JS-Code

$("#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 :-) ");
            }
        });
});

Hier kommt PHP, setzen Sie dies in 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 );
}

Auch dieser Haken auch:

add_action('wp_ajax_use_someprefix_update_url', 'use_someprefix_update_url');

P.S: Sie müssen Validierungsaufgaben erledigen.

1
daniyalahmad