我有一些基本的Woocommerce问题,在网上找不到任何地方。
- 从下面的代码中,$args是从哪里来的?
- $product和$args如何分配给%s?
谢谢!2谢谢!
global $product;
echo apply_filters( 'woocommerce_loop_add_to_cart_link', // WPCS: XSS ok.
sprintf( '<a href="%s" data-quantity="%s" class="%s" %s>%s</a>',
esc_url( $product->add_to_cart_url() ),
esc_attr( isset( $args['quantity'] ) ? $args['quantity'] : 1 ),
esc_attr( isset( $args['class'] ) ? $args['class'] : 'button' ),
isset( $args['attributes'] ) ? wc_implode_html_attributes( $args['attributes'] ) : '',
esc_html( $product->add_to_cart_text() )
),
$product, $args );
2条答案
按热度按时间watbbzwu1#
1)模板文件
loop/add_to_cart.php
中$args变量的说明:问题中的代码来自模板文件
loop/add_to_cart.php
。它由
woocommerce_after_shop_loop_item
钩子上的content-product.php
模板文件调用:正如你所看到的,模板函数
woocommerce_template_loop_add_to_cart()
完成了这项工作,它位于includes/wc-template-functions.php
下的WooCommerce插件中。因此,默认参数为:
它们通过过滤器钩子
woocommerce_loop_add_to_cart_args
解析:允许对这些论点进行修改。
woocommerce_loop_add_to_cart_link
中的**$args
变量就是由它组成的。1.
$product
和$args
如何分配给%s
:这是特定于PHP
printf()
和sprintf()
函数的,其中每个%s
都是占位符**。在
'<a href="%s" data-quantity="%s" class="%s" %s>%s</a>'
中:%s
将替换为esc_url( $product->add_to_cart_url() )
%s
x x 1 m19n1xand so on…
printf()
和sprintf()
php函数的文档。ftf50wuq2#
下面是我实际更改$args的方法: