WooCommerce:多种产品变体的多输入域

时间:2013-01-24 作者:stefano1

我正在尝试根据自己的需要自定义默认Woocommerce主题。

我有一种产品有两种变体:葡萄酒,变体a是6瓶包装,变体B是12瓶木箱。

我想在产品旁边有一个双输入文本字段,可以将它们添加到购物车中。

就像你在这张图中看到的一样(不要介意数字,它们只是设计中的随机数字;):

double input field

现在,我已经设法只有一个文本字段,可以只添加一个变体,或者有一个按钮可以将我发送到带有下拉列表的产品详细信息页面,可以从两个变体中选择一个。

But I\'d like to do it directly on the catalogue (archive) page, and not with a dropdown menu, but with 2 different input fields.

你能帮我一下吗?定制Woocommerce似乎并不那么容易……:(

现在我正在尝试编辑内容产品。php,我已经注释掉了一些“默认”woocommerce操作,用我的代码对其进行了自定义。这是我实际的内容产品。php,但它只为产品的一个变体显示一个输入字段。

<?php
/**
 * The template for displaying product content within loops.
 *
 * Override this template by copying it to yourtheme/woocommerce/content-product.php
 *
 * @author      WooThemes
 * @package     WooCommerce/Templates
 * @version     1.6.4
 */

global $product, $woocommerce_loop;

// Store loop count we\'re currently on
if ( empty( $woocommerce_loop[\'loop\'] ) )
    $woocommerce_loop[\'loop\'] = 0;

// Store column count for displaying the grid
if ( empty( $woocommerce_loop[\'columns\'] ) )
    $woocommerce_loop[\'columns\'] = apply_filters( \'loop_shop_columns\', 4 );

// Ensure visibilty
if ( ! $product->is_visible() )
    return;

// Increase loop count
$woocommerce_loop[\'loop\']++;
?>
<li class="product-catalog <?php
    if ( $woocommerce_loop[\'loop\'] % $woocommerce_loop[\'columns\'] == 0 )
        echo \'last\';
    elseif ( ( $woocommerce_loop[\'loop\'] - 1 ) % $woocommerce_loop[\'columns\'] == 0 )
        echo \'first\';
    ?>">

    <?php do_action( \'woocommerce_before_shop_loop_item\' ); ?>



        <?php
            /**
             * woocommerce_before_shop_loop_item_title hook
             *
             * @hooked woocommerce_show_product_loop_sale_flash - 10
             * @hooked woocommerce_template_loop_product_thumbnail - 10
             */
            //do_action( \'woocommerce_before_shop_loop_item_title\' );
        ?>
        <?php echo get_the_post_thumbnail( $post->ID, \'shop_catalog\'  ) ?>
        <h3 class="section-title"><?php the_title(); ?></h3>
        <?php the_excerpt(); 
        echo \'<div class="more-link-container"><a href="\'.get_permalink($loop->post->ID).\'" title="More details" class="read-more-link">More Details</a>  <span class="link-arrow">&raquo;</span></div>\'
        ?>
        <form action="<?php echo esc_url( $product->add_to_cart_url() ); ?>" class="cart" method="post" enctype=\'multipart/form-data\'>
            <?php woocommerce_quantity_input(); ?>

            <p>(Six bottle minimum, price is based<br />on a per bottle cost of $15.95)</p>

            <button type="submit" class="button alt">Add to chart</button> <a href="<?php echo $woocommerce->cart->get_cart_url(); ?>" class="button-link">Checkout</a>

        </form>
        <?php
            /**
             * woocommerce_after_shop_loop_item_title hook
             *
             * @hooked woocommerce_template_loop_price - 10
             */
            //do_action( \'woocommerce_after_shop_loop_item_title\' );
        ?>



    <?php //do_action( \'woocommerce_after_shop_loop_item\' ); ?>

</li>

2 个回复
SO网友:David

仅供发现这一点的其他人参考:我能够使用分组产品而不是变体来实现这一点。只需将主要产品(本例中为葡萄酒)添加为“分组产品”。然后,将两种大小的箱子添加为简单产品,并在“高级”选项卡中,从“分组”下拉列表中选择分组产品。

最后我看到一个页面like this.

希望这对某人有帮助。

SO网友:Steve

如果您遵循建议的自定义WooCommerce过程,那么您应该已经将需要修改的所有WooCommerce文件复制到主题文件夹中。以防万一你没有这个link to the documentation.

根据我在WooCommerce的经验,我建议查看该文件/woocommerce/单一产品/添加到购物车/变量。当然,在你把它复制到你的主题之后。

这是在单个产品页面和类别页面上为可变产品生成“添加到购物车”表单的文件。

请记住,表单是AJAX驱动的,您可能还需要查看相关联的jQuery代码来实现您的目标。

我以前确实做过,但不记得在哪里/哪个客户。我将尝试找到代码片段并发布它,但没有承诺何时发布。恐怕接下来的几天我都忙得不可开交了。

结束

相关推荐

从非核心php文件访问BloInfo、Get_Option和plugins_url

我正在创建一个插件,插件目录中有一个php文件,可以通过自定义重写url直接访问该文件。我需要这个文件能够使用标题中提到的三个功能。目前,我正在包括wp负载。php文件,它使我能够访问所有这些函数。然而,我一直在读到不应该包括wp负载,因为它可能不总是在同一个位置,而且它包括可能不需要的wordpress文件。这就是我如何包含wp负载:$wp_base = explode($_SERVER[\'PHP_SELF\'], $_SERVER[\'SCRIPT_FILENAME\']); require