Impostazione di un attributo come variazione nel commercio woo tramite PHP [duplicato

wordpress.stackexchange https://wordpress.stackexchange.com/questions/134026

  •  06-11-2019
  •  | 
  •  

Domanda

Questa domanda è un duplicato esatto di:

Ho un modulo front-end che sto creando per consentire agli utenti di pubblicare un prodotto variabile nel mio negozio dal front-end con attributi e variazioni predefinite.

Ho trovato questa domanda molto utile: qui Che mi mostra come impostare il tipo di prodotto come variabile e assegnare i miei attributi predefiniti nella sezione Attributi dei dati del prodotto.

Tuttavia, quando sono sul backend di WordPress/WooCommerce e modificando il prodotto, faccio clic sulle variazioni e nessuno è impostato, guardo gli attributi e il mio attributo "risoluzione" è impostato con i miei 3 elementi.

Come faccio a farlo dove imposterà effettivamente quegli attributi alle variazioni della mia forma? Devo usare wp_insert_post? Guardando in PhpMyAdmin sembra solo che le variazioni del prodotto siano assegnate a un genitore_id (ID prodotto) e il tipo di post è Product_Varition e così via.

$new_post = array(
'post_title' => esc_attr(strip_tags($_POST['postTitle'])),
'post_content' => esc_attr(strip_tags($_POST['postContent'])),
'post_status' => 'publish',
'post_type' => 'product',
'tags_input' => array($tags)
);

$skuu = rand();
$post_id = wp_insert_post($new_post);
update_post_meta($post_id, '_sku', $skuu );

//my array for setting the attributes
$avail_attributes = array(
    'high-resolution',
    'medium-resolution',
    'low-resolution'
);

//Sets the attributes up to be used as variations but doesnt actually set them up as variations
wp_set_object_terms ($post_id, 'variable', 'product_type');
wp_set_object_terms( $post_id, $avail_attributes, 'pa_resolution' );


$thedata = array(
'pa_resolution'=> array(
                'name'=>'pa_resolution',
                'value'=>'',
                'is_visible' => '1',
                'is_variation' => '1',
                'is_taxonomy' => '1'
                )
);
update_post_meta( $post_id,'_product_attributes',$thedata);

update_post_meta( $post_id, '_visibility', 'search' );
update_post_meta( $post_id, '_stock_status', 'instock');

Quindi solo per essere chiari (tendo a confondere) quanto sopra crea il mio prodotto variabile dalla parte anteriore e quando guardo il prodotto nel backend è un prodotto variabile, ha l'attributo di risoluzione e ha il mio 3 Termini (ad alta risoluzione, medio-pie, basse) come attributi. Devo solo fare un ulteriore passo avanti dove sono effettivamente impostati come variazioni in modo che le persone possano effettuare un ordine.

Adds attributes to product already need it to add variations as well

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top