pre-enregistrer tous les attributs et valeurs (Créer un compte)

  • WordPress :6.2
  • Statut : non résolu
Affichage de 1 message (sur 1 au total)
  • Auteur
    Messages
  • #2455764
    kate66
    Participant
    Padawan WordPress
    90 contributions

    Bonjour,je travaille avec dokan je souhaite pré-enregistrer tous les attribus et valeurs lors de la création d’un produit sur le tableau de bord vendeur.

    j’ai trouvé cela

    Bonjour,

    on souhaite dans le formulaire de vendeur lors de la création d’un produit.Que les attributs et valeurs soient automatiquement pre-enregistré

    on a trouve cette fonction qui doit fonctionner avec dokan mais elle affichent tous les attributs mais elle a pas pre-enregistrer tous les valeurs :

    add_action( 'save_post', 'auto_add_product_attributes', 50, 3 );
    function auto_add_product_attributes( $post_id, $post, $update ) {

    ## --- Checking --- ##

    if ( $post->post_type != 'product') return; // Only products

    // Exit if it's an autosave
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
    return $post_id;

    // Exit if it's an update
    if( $update )
    return $post_id;

    // Exit if user is not allowed
    if ( ! current_user_can( 'edit_product', $post_id ) )
    return $post_id;

    ## --- The Settings for your product attributes --- ##

    $visible = ''; // can be: '' or '1'
    $variation = ''; // can be: '' or '1'

    ## --- The code --- ##

    // Get all existing product attributes
    global $wpdb;
    $attributes = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}woocommerce_attribute_taxonomies" );

    $position = 0; // Auto incremented position value starting at '0'
    $data = array(); // initialising (empty array)

    // Loop through each exiting product attribute
    foreach( $attributes as $attribute ){
    // Get the correct taxonomy for product attributes
    $taxonomy = 'pa_'.$attribute->attribute_name;
    $attribute_id = $attribute->attribute_id;

    // Get all term Ids values for the current product attribute (array)
    $term_ids = get_terms(array('taxonomy' => $taxonomy, 'fields' => 'ids'));

    // Get an empty instance of the WC_Product_Attribute object
    $product_attribute = new WC_Product_Attribute();

    // Set the related data in the WC_Product_Attribute object
    $product_attribute->set_id( $attribute_id );
    $product_attribute->set_name( $taxonomy );
    $product_attribute->set_options( $term_ids );
    $product_attribute->set_position( $position );
    $product_attribute->set_visible( $visible );
    $product_attribute->set_variation( $variation );

    // Add the product WC_Product_Attribute object in the data array
    $data[$taxonomy] = $product_attribute;

    $position++; // Incrementing position
    }
    // Get an instance of the WC_Product object
    $product = wc_get_product( $post_id );

    // Set the array of WC_Product_Attribute objects in the product
    $product->set_attributes( $data );

    $product->save(); // Save the product
    }*/

    on nous a indiquer quel fonctionner pourtant avec dokan .

     

    elle fonctionne mais toutes les valeurs ne sont pas pre-enregistrer il en manque.

     

    auriez vous une idée ?

     

    MERCI.

    • Ce sujet a été modifié le il y a 1 année et 8 mois par kate66.
Affichage de 1 message (sur 1 au total)
  • Vous devez être connecté pour répondre à ce sujet.