HTML中的PHP语法 - 添加到购物车按钮
问题描述:
我试图解析并返回woocommerce中的产品ID使用<?php echo $product->id; ?>
在第6行,但我有问题理解功能内的语法。HTML中的PHP语法 - 添加到购物车按钮
add_filter('woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_woocommerce_loop_add_to_cart_link', 10, 2);
function quantity_inputs_for_woocommerce_loop_add_to_cart_link($html, $product) {
if ($product && $product->is_type('simple') && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually()) {
$html = '<form action="' . esc_url($product->add_to_cart_url()) . '" class="cart" method="post" enctype="multipart/form-data">';
$html .= woocommerce_quantity_input(array(), $product, false);
$html .= '<button type="submit" data-quantity="1" data-product_id="<?php echo $product->id; ?>" class="button alt ajax_add_to_cart add_to_cart_button product_type_simple qodef-btn qodef-btn-outline">Add</button>';
$html .= '</form>';
}
return $html;
}
这个不幸只是吐出了data-product_id="<?php echo $product->id; ?>"
作为输出html。我希望它返回一个数字的产品ID,以便AJAX可以处理添加到购物车的过程。
我很好做legwork我只是卡在我实际处理!
谢谢。
编辑 - 最终解决
由于krlv
在关闭的机会任何人都想功能和js添加量按钮(减号,输入,加上旁边的添加到购物车按钮)到woocommerce产品库(存档)中的产品;
PHP为的functions.php
add_filter('woocommerce_loop_add_to_cart_link',
'quantity_inputs_for_woocommerce_loop_add_to_cart_link', 10, 2);
function quantity_inputs_for_woocommerce_loop_add_to_cart_link($html, $product) {
if ($product && $product->is_type('simple') && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually()) {
$html = '<form action="' . esc_url($product->add_to_cart_url()) . '" class="cart" method="post" enctype="multipart/form-data">';
$html .= woocommerce_quantity_input(array(), $product, false);
$html .= '<button type="submit" data-quantity="1" data-product_id="' . $product->id . '" class="button alt ajax_add_to_cart add_to_cart_button product_type_simple Add_Your_Style_Classes_Here">Add</button>';
$html .= '</form>';
}
return $html;
}
JS
jQuery(function($) {
$("form.cart").on("change", "input.qty", function() {
$(this.form).find("button[data-quantity]").data("quantity", this.value);
});
$(document.body).on("adding_to_cart", function() {
$("a.added_to_cart").remove();
});
});
答
你不需要echo
产品ID,你需要$html
字符串来连接它。你可以这样做:
$html .= '<button type="submit" data-quantity="1" data-product_id="' . $product->id . '" class="button alt ajax_add_to_cart add_to_cart_button product_type_simple qodef-btn qodef-btn-outline">Add</button>';
非常好!谢谢。我是否认为echo在html解析的php中没有地方?那是什么。 $ product-> id。正在追加? –
@JasonKing你绝对是对的 – krlv
Ahh连环!再次感谢你的帮助。回到阅读文档和学习PHP。 –