Página de la tienda de WooCommerce para usar mi plantilla personalizada [cerrado]

9

Antes de hacer la pregunta, quiero decirle que ya la hice en /programming/15025213/wordpress-woocommerce-template-file-overiding

Estoy usando el complemento WooCommerce para desarrollar un sitio web. Todo está bien con WooCommerce. Según mi requisito, he configurado mi página de inicio como una página base de la tienda desde el panel de control de WooCommerce para hacer que mi página de inicio sea la página de la tienda. Ahora, mi requisito es colocar algunas imágenes que deben cargarse desde el lado del administrador y mostrar algo de texto sobre las imágenes. Para esa función, busqué en Google y algunas personas sugirieron que usara los campos personalizados avanzados de WordPress . Lo acabo de instalar.

Ahora vi que WooCommerce no está usando mi tema personalizado. Está utilizando su propio tema personalizado. Como quiero mostrar imágenes y texto usando el complemento Campos personalizados avanzados , realmente necesito mi propia plantilla personalizada para usar las consultas de imágenes y texto. Entonces busqué de nuevo sobre el Google para una solución y me dio la sugerencia de hacer sólo una copia del tema de page.phpdentro woocommerce.phpy luego simplemente reemplazar el código:

     <?php while ( have_posts() ) : the_post(); ?>

      <?php get_template_part( 'content', 'page' ); ?>

      <?php comments_template( '', true ); ?>

    <?php endwhile; // end of the loop. ?>

con

<?php woocommerce_content(); ?>

Lo hice pero aún no obtengo mis campos personalizados de Campos personalizados avanzados . Así que amablemente ayúdame. Cualquier sugerencia y ayuda será apreciable. Gracias.

Mi código para mostrar los campos personalizados avanzados para imagen y texto es así:

<?php $product_tab_banner = get_field('product_tab_banner');
    if($product_tab_banner): ?>
   <?php var_dump($product_tab_banner); ?>
    <div class="nt-highlighted-products">
    <img src="<?php echo $product_tab_banner['url']; ?>" alt="<?php echo $product_tab_banner['alt']; ?>"  width="<?php echo $product_tab_banner['sizes']['featured_product-width'];?>" height="<?php echo $product_tab_banner['sizes']['featured_product-height'];?>" title="<?php echo $product_tab_banner['title']; ?>" />
    </div>
  <?php endif; ?>

Estoy usando el tema WordPress TwentyEleven.

Nuevo Usuario
fuente
Tal vez la documentación del WC tiene algunas pistas.
brasofilo
@brasofilo He buscado en la documentación pero no tengo ninguna pista allí ...
NewUser
Comprueba si esto ayuda.
brasofilo
sí, lo intenté pero se muestra asíFatal error: Cannot redeclare show_template() (previously declared
NewUser
Hubo un error con el nombre de la función, solo lo corrigió.
brasofilo

Respuestas:

5

Al revisar su pregunta, quiero decirle que woocommerce no usará su plantilla personalizada. Utilizará su propia plantilla. Como desea utilizar el complemento de campos personalizados avanzados de WordPress , quiero decirle que esa característica solo funciona en la página y en la publicación. Entonces, dado que woocommerce no permitirá usar su propia plantilla personalizada, no puede usar funciones avanzadas de campos personalizados.

Ahora solo haz algo diferente. Simplemente haga su propia plantilla personalizada donde desee mostrar sus productos. Luego, vaya al sitio http://docs.woothemes.com/document/woocommerce-shortcodes/ Aquí puede ver los códigos cortos para el woocommerce . Donde puede mostrar fácilmente casi todos los productos con su propia personalización. Ahora use estos códigos cortos para mostrar los productos. Aquí ha logrado que woocommerce esté utilizando su propia plantilla personalizada. Ahora, como es su propia plantilla, puede usar fácilmente campos personalizados avanzados con esto. ¿Está claro? Si hay algo que no puedes entender, respóndeme. Espero que esto te ayudará.

usuario159377
fuente
11

No estoy muy seguro si entiendo su problema correctamente, pero aquí está mi intento de replicarlo.

Primero , considere esta parte de la documentación de WooCommerce :

Si desea editar una de estas plantillas, simplemente cópiela en un directorio dentro de su tema llamado /woocommerce, manteniendo la misma estructura de archivos, por ejemplo, vaya /templates/cart/cart.phpa themename/woocommerce/cart/cart.php. El archivo copiado ahora anulará el archivo de plantilla predeterminado de WooCommerce.

En segundo lugar , estos son los pasos de replicación:

  • Usando WP 3.5.1, TwentyEleven 1.5, WooCommerce 1.6.6 y AdvancedCustomFields 4.0.0
  • Establecer la página "única" y es la primera página estática en ajustes de la lectura ( /wp-admin/options-reading.php)
  • Establezca un grupo de campos ACF que contenga un campo de imagen ( product_tab_banner), con el valor de retorno como "Objeto de imagen" y que se muestre en el tipo de publicación "Producto"

Solución :

  • Crea la siguiente carpeta: /wp-content/twentyeleven/woocommerce/
  • Copie el archivo: /wp-content/plugins/woocommerce/templates/content-product.php a esta carpeta recién creada
  • Coloque su código en esta copia de content-product.php
$product_tab_banner = get_field('product_tab_banner');
if($product_tab_banner): ?>
    <div class="nt-highlighted-products">
    <img src="<?php echo $product_tab_banner['url']; ?>" 
        alt="<?php echo $product_tab_banner['alt']; ?>"  
        width="<?php echo $product_tab_banner['sizes']['featured_product-width'];?>" 
        height="<?php echo $product_tab_banner['sizes']['featured_product-height'];?>" 
        title="<?php echo $product_tab_banner['title']; ?>" />
    </div>
<?php endif; ?>

Aquí está la página del producto:

página del producto
haga clic para ampliar

Y aquí el resultado en el sitio:

resultado del sitio


Si desea personalizar la página de "Tienda", copiar el archivo /wp-content/plugins/woocommerce/templates/archive-product.phpen el tema de su /woocommerce/carpeta.

brasofilo
fuente
-2

Intente reemplazar el complemento que está utilizando con las extensiones oficiales de WooCommerce como "Complementos de productos" ( http://www.woothemes.com/products/product-add-ons/ ).

Caja
fuente
¿has leído mis preguntas correctamente?
NewUser
1
Hago. Sin embargo, puede llevar algún tiempo entender mi respuesta.
Box