作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在Woocommerce 3.1.2中努力寻找一个循环和一个简单/可变产品类型。所有循环都经过 loop/add-to-cart.php
,这是我的主题中自定义的(不是我自己制作的),其内容如下:
global $product;
echo '<li class="cart_view">';
echo apply_filters( 'woocommerce_loop_add_to_cart_link',
sprintf( '<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" data-quantity="%s" class="button %s product_type_%s">%s</a>',
esc_url( $product->add_to_cart_url() ),
esc_attr( $product->id ),
esc_attr( $product->get_sku() ),
esc_attr( isset( $quantity ) ? $quantity : 1 ),
$product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '',
esc_attr( $product->product_type ),
esc_html( $product->add_to_cart_text() )
),
$product );
echo '</li>';
$product->product_type
之外,其他所有东西(ID,href等)都可以正常工作(即使正确),即使
has_child()
变了,返回的也很简单。
get_type()
,它们也失败了。
product_type()
而不是
add_to_cart_text()
的行为相同。 ojit_code也失败,因此可能是其他原因。
最佳答案
由于无法直接访问WooCommerce 3+ WC_Product属性:
$product->id
替换为:$product->get_id()
$product->product_type
替换为$product->get_type()
sprintf()
函数中,当将您拥有的代码与原始WooCommerce模板代码(
loop/add-to-cart.php
)比较时,
,它们之间的唯一区别是您的代码是从'ajax_add_to_cart'
属性中删除class
。其他所有东西都一样。<li>
标签即可:if ( ! defined( 'ABSPATH' ) ) {
exit;
}
global $product;
echo '<li class="cart_view">';
echo apply_filters( 'woocommerce_loop_add_to_cart_link',
sprintf( '<a rel="nofollow" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%s">%s</a>',
esc_url( $product->add_to_cart_url() ),
esc_attr( isset( $quantity ) ? $quantity : 1 ),
esc_attr( $product->get_id() ),
esc_attr( $product->get_sku() ),
esc_attr( isset( $class ) ? $class : 'button' ),
esc_html( $product->add_to_cart_text() )
),
$product );
echo '</li>';
str_replace()
:if ( ! defined( 'ABSPATH' ) ) {
exit;
}
global $product;
echo '<li class="cart_view">';
echo apply_filters( 'woocommerce_loop_add_to_cart_link',
sprintf( '<a rel="nofollow" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%s">%s</a>',
esc_url( $product->add_to_cart_url() ),
esc_attr( isset( $quantity ) ? $quantity : 1 ),
esc_attr( $product->get_id() ),
esc_attr( $product->get_sku() ),
esc_attr( isset( $class ) ? str_replace(' ajax_add_to_cart', '', $class) : 'button' ),
esc_html( $product->add_to_cart_text() )
),
$product );
echo '</li>';
关于php - WooCommerce的product_type属性在产品可变时返回简单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46158357/
database ==========brand_1(table) ------------------product_1 ------------------product_2 ==========
我正在为 woocommerce 创建自己的插件,并意识到在创建或更新产品时不会保存我的自定义 product_type。我确定问题出在我的插件上,但我不知道在哪里查看。 添加 product_typ
我想通过 MySQL 按简单或可变产品过滤 WooCommerce 中的产品;但我找不到 WooCommerce 如何存储数据并在数据库中区分它们。 我想要一个 MySQL 查询来列出所有简单和可变的
我是一名优秀的程序员,十分优秀!