Impostazione di un attributo come variazione nel commercio woo tramite PHP [duplicato
-
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.
Nessuna soluzione corretta