【发布时间】:2018-07-13 17:39:10
【问题描述】:
我正在尝试:在产品选项卡描述区域的单个产品页面上显示可变产品子项的变体描述。
在 WooCommerce 和可变产品中,父级具有存储在 wp_posts->post_content 中的描述,每个子级都有一个附加的 _variation_description 字段。在前端,父项的描述始终可见,并且子项的_variation_description 显示为选择了一个变体。它使用 js 进行更新,并显示在添加到购物车按钮之前以及变体的价格。
描述在description.php中调用代码
the_content();
输出父产品 post_content db 字段。 变体描述在variation.php中调用,代码
<script type="text/template" id="tmpl-variation-template">
<div class="woocommerce-variation-description">{{{ data.variation.variation_description }}}</div>
</script>
据我了解,这适用于 wp.template,我还检查了Javascript Reference wp.template 上的信息 js 在 add-to-cart-variation.js 中,模板是用
构建的template = wp.template( 'variation-template' );
然后可以更新我不太了解的数据。我的理解是所有的js调用都是表单,
form.$singleVariation.html( $template_html );
然后我意识到为什么我不能只从variation.php 复制代码并将其粘贴到description.php,因为它会在表单标签之外。
另一方面,SKU 的数据不是从表单中调用的,而是通过 .product_meta 调用的,所以如果我放置一个 class="product_meta" 的 div,我可以调用 sku 并从任何地方用 js 更新它.例如我可以把这段代码放到description.php中
<div class="product_meta">
<?php if ( wc_product_sku_enabled() && ( $product->get_sku() || $product->is_type( 'variable' ) ) ) : ?>
<?php if ( $sku = $product->get_sku() ) : ?>
<span class="sku_wrapper"><?php esc_html_e( 'SKU:', 'woocommerce' ); ?>
<span class="sku" itemprop="sku"><?php echo $sku; ?></span></span>
<?php endif; ?>
<?php endif; ?>
</div>
而且效果很好。
所以我在这里卡住了。我只想在 description.php 中动态显示变体描述,我想如果我了解 wp.template 在 add-to-cart-variation.js 中的工作原理,我就能弄清楚。但我不能。我不完全了解变体形式中的内容是如何更新的,以及 SKU 中的数据有什么区别。
对于我想要的东西,也许有一个完全简单易行的解决方案,也许我的方法太复杂了。我会很高兴任何想法或提示或只是指向正确的方向。
【问题讨论】:
-
我更新了我的问题并遗漏了所有自定义字段,所以现在它更清楚了。我还试图阐明我的目标以及到目前为止我一直在尝试的内容。
标签: php jquery wordpress templates woocommerce