Crear con PHP un producto variable en WooCommerce con varios atributos

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn

Producto variable en WooCommerce con varios atributos.

 

En este apartado vamos a ver como crear un producto variable en WooCommerce con varios atributos en usando PHP.

A continuación se verá paso a paso el código para ello.

Creamos el array con los datos del producto:

$post_data = array(
'ID' => $product_ID,
'post_author' => $cliente,
'post_name' => $tituloproductos."-".$refProducto,
'post_title' => $opcion_pretitulo."-".$tituloproductos."-".$opcion_postitulo,
'post_content' => $descripcion_final,
'post_excerpt' => $descripcion_corta,
'post_status' => 'publish',
'ping_status' => 'closed',
'post_type' => 'product',
'guid' => home_url( '/product/producto-prueba/' ),
);

Creamos el producto:

$product_id = wp_insert_post( $post_data );

A continuación se crea la categoría de nuestro producto, si ya tienes una o varias puedes asignársela directamente:

$id_categoria = wp_insert_term(

    $descripcionsubfamilias, // the name
    'product_cat', // the taxonomy

     array(

             'description'=> $refSubfamilia,
             'slug' => $refSubfamilia."-".$descripcionsubfamilias,

     )
);

wp_set_object_terms( $product_id, $id_categoria, 'product_cat');//Aquí se le asigna la categoría al producto
// por lo que si ya sabes la id de tú categoría simplemente usa solo esta línea.

Ahora que tenemos lo necesario, empecemos a programar esos atributos, para ello primero debemos crear un objeto producto variable de WooCommerce con $product_id:

$product = newWC_Product_Variable($product_id);

$attribute = newWC_Product_Attribute();//declaramos nuestro primer atributo
$attribute->set_id(0);//le damos una id
$attribute->set_name('color');// y un nombre

 $colores = array(0  => "Rojo",//este sera los valores del atributo
    1 => "Azul");

 $attribute->set_visible(true);
 $attribute->set_variation(true);
 $attribute->set_options($colores);//le asignamos los valores al atributo

Ya tenemos el primer atributo ahora el segundo, seguimos los mismos pasos que en el primero:

$attribute2 = newWC_Product_Attribute();
$attribute2->set_id(0);
$attribute2->set_name('tamanyo');

$tamanyo = array(0 => "Grande",1 => "Mediano",2 => "Pequeño");

$attribute2->set_options($tamanyo);
$attribute2->set_visible(true);
$attribute2->set_variation(true);

Por ultimo, asignamos estos atributos a nuestro producto y lo guardamos:

$product->set_attributes(array($attribute,$attribute2));
$product->save();

Puedes hacer tantos atributos como quieras, solo acuérdate de añadirlos en el array, y eso es todo, espero que os haya sido de utilidad.

Cualquier duda o comentario será bienvenida.

 

 

Más...

Nueva web credithousecar.com

Ha sido un placer realizar todo el diseño y la imagen corporativa de credithousecar.com Una web moderna y actual, con un diseño

Más...

Nueva web credithousecar.com

Ha sido un placer realizar todo el diseño y la imagen corporativa de credithousecar.com Una web moderna y actual, con un diseño

Deja un comentario

Ebook Gratis 7 claves para atraer clientes a tu web