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...

Portada SmartMaterials3d

Tienda online y Blog SmartMaterials3d

En garberinformática hemos creado la nueva versión de la tienda online SmartMaterials3d. SmartMaterials3d es uno de los principales fabricantes nacionales de filamentos

Más...

Portada SmartMaterials3d

Tienda online y Blog SmartMaterials3d

En garberinformática hemos creado la nueva versión de la tienda online SmartMaterials3d. SmartMaterials3d es uno de los principales fabricantes nacionales de filamentos

Deja un comentario