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>'; 
+0

非常好!谢谢。我是否认为echo在html解析的php中没有地方?那是什么。 $ product-> id。正在追加? –

+0

@JasonKing你绝对是对的 – krlv

+0

Ahh连环!再次感谢你的帮助。回到阅读文档和学习PHP。 –