He creado una tienda de woocommerce y agrego algunas variaciones a algunos productos. Cada variación tiene su propio número de SKU, pero por alguna razón no se muestran en el panel de descripción general de los productos. ¿Hay alguna forma en que pueda agregarlos o alguien pueda mostrarme la dirección correcta a seguir? Además, si trato de buscar la variación, no aparece el producto donde se encuentra. ¿Tengo que registrar el sku de variación en algún lugar? ¿Viene esto por defecto con woocommerce o no?
¡Gracias!
Así es como he configurado las variaciones:
Mario Sánchez Maselli
Ok, dado que nadie vino con una respuesta, tuve que investigar un poco yo mismo: D Así que aquí está la solución que encontré por el momento.
En el archivo class-wc-admin-post-types.php que se encuentra en woocommerce/includes/admin
Tienes que modificar algún código en la línea 277
case 'sku' :
$type = (get_class($the_product));
if( $type == 'WC_Product_Variable' ){
$available_variations = $the_product->get_available_variations();
echo '<strong> Variations: </strong>' . count($available_variations) . '<br><br>';
for ($i = 0; $i < count($available_variations); $i++ ) {
echo ($available_variations[$i]['sku']) . '<br>';
}
}
else {
echo $the_product->get_sku() ? $the_product->get_sku() : '<span class="na">–</span>';
}
break;
Y ahora puede obtener algo como esto: cuando tenga variaciones en su producto, mostrará la cantidad de variaciones y todos los sku disponibles y, si no es un producto variable, solo mostrará el sku.
Ahora estoy pensando en que probablemente modificaré también la columna de existencias y mostraré la cantidad de existencias en cada una de ellas.
Espero que esto ayude a alguien más. ¡Y gracias por los que intentaron ayudar!
Ok… entonces agregué el soporte para stock, nada muy diferente al código anterior… Entonces, en el mismo documento ahora en la línea 344, puede agregar esto.
case 'is_in_stock' :
$type = (get_class($the_product));
if( $type == 'WC_Product_Variable' ){
$available_variations = $the_product->get_available_variations();
echo '<strong> Variations stock: </strong> <br><br>';
for ($i = 0; $i < count($available_variations); $i++ ) {
if ( $available_variations[$i]['is_in_stock'] == 0 ) {
echo '<mark class="outofstock">' . __( 'Out of stock', 'woocommerce' ) . '</mark>';
}else {
echo '<mark class="instock">' . __( 'In stock', 'woocommerce' ) . '</mark>';
}
if ($available_variations[$i]['variation_is_active']) {
echo ' × ' . $available_variations[$i]['max_qty'] . '<br>' ;
}
}
} else {
if ( $the_product->is_in_stock() ) {
echo '<mark class="instock">' . __( 'In stock', 'woocommerce' ) . '</mark>';
} else {
echo '<mark class="outofstock">' . __( 'Out of stock', 'woocommerce' ) . '</mark>';
}
if ( $the_product->managing_stock() ) {
echo ' × ' . $the_product->get_total_stock() ;
}
}
break;
Y obtienes algo como esto:
Para obtener más información, consulte el enlace a continuación. Resumen: este enfoque puede tener algunos problemas de rendimiento… tenga cuidado con cuántas variaciones de productos tiene.
manan mian
add_action( 'woocommerce_single_product_summary', 'dev_designs_show_sku', 5 );
function dev_designs_show_sku(){
global $product;
if ( $product->is_type( 'variable' ) ) {
$available_variations = $product->get_available_variations();
for ($i = 0; $i < count($available_variations); $i++ ) {
echo 'SKU: ' . ($available_variations[$i]['sku']) . '<br>';
}
} else {
echo 'SKU: ' . $product->get_sku();
}
}
-
Bienvenido a SO. Si bien este código puede responder la pregunta del OP, es mejor incluir contexto o razonamiento sobre por qué/cómo esto resuelve el problema. Esto ayudará a los futuros visitantes a aprender de su publicación y aplicarla a sus propios problemas, y mantiene a SO como una ubicación de alto valor para encontrar soluciones a problemas de programación. Por favor
edit
si puedes agregar algo de información adicional. ¡Gracias por tu contribución!– SherylHohman
6 de febrero de 2020 a las 21:13
Simplemente elimine la verificación condicional IF que rodea el HTML fuera del SKU del archivo meta.php. Alrededor de la LÍNEA 18.
El archivo está en la carpeta de complementos/plantillas de WC.
O
solo de this -> $product->get_sku()
De la declaración IF ya que eso está causando el problema.
Devuelve una cadena vacía, es por eso que el IF condicional nunca se cumple.
Además, la razón por la que esto sucede es que si el producto principal no tiene un SKU y solo sus variables lo tienen, se producirá este problema. Por lo tanto, mi comentario en la parte superior indica que devuelve una cadena vacía mientras intenta extraer primero del padre. en otras palabras, si ha configurado SKU para el padre y las variables, todo funcionará incluso sin modificar el código que mencioné.
-
el archivo del que está hablando meta.php es para mostrar el sku en la vista de un solo producto… Estoy hablando del backend… las imágenes de arriba. Como puede ver, solo aparece un ku en los productos individuales, pero hay un espacio vacío en los productos variables.
– Mario Sánchez Maselli
20/10/2015 a las 13:25
-
¿Qué has hecho hasta ahora para arreglar esto? No creo que esto sea relevante para codificar de ninguna manera. Puede ser que te estés saltando la instalación. Como ves nuestra aportación en WooCommerce [github.com/dreamyourcareer/woocommerce] No estamos enfrentando ningún problema como ese.
– Navnish Bhardwaj
20/10/2015 a las 13:32
-
este enlace no va a ninguna parte
– Mario Sánchez Maselli
21 de octubre de 2015 a las 8:37
-
Está yendo al Repositorio de WooCommerce. ¿Tiene alguna idea sobre cómo obtener ayuda de GitHub o cómo la han usado?
– Navnish Bhardwaj
21/10/2015 a las 11:10
Creo que está usando guiones bajos en SKU, esa es la razón por la cual sus productos no muestran SKU.
– Jaswinder Kaur
19 de octubre de 2015 a las 11:14
Nop… hay productos con _ y son productos simples y salen.. y hay productos con _ y sin eso, como productos variables y no salen…
– Mario Sánchez Maselli
20 de octubre de 2015 a las 13:28
Solicitud de cierre de pregunta [Flag] ya que no tiene nada que ver con los problemas de código. Incluso la persona que pregunta no está activa en las respuestas de problemas.
– Navnish Bhardwaj
20 de octubre de 2015 a las 13:34
Si no sabe la respuesta, no significa que no esté relacionada con el código. Encontré este error abierto en githubhttps://github.com/woothemes/woocommerce/issues/1734
– Mario Sánchez Maselli
20/10/2015 a las 18:50