HTML中的PHP语法 - 添加到购物车按钮

Jas*_*ing 1 html php wordpress woocommerce

我正在尝试使用<?php echo $product->id; ?>第6行解析并返回woocommerce中产品的ID ,但是我在理解函数中的语法时遇到了问题.

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;
    }
Run Code Online (Sandbox Code Playgroud)

不幸的是,这只是data-product_id="<?php echo $product->id; ?>"输出html 吐出来的.我希望它返回产品ID,这是一个数字,以便AJAX可以处理添加到购物车的过程.

我很好做腿法我只是坚持我实际处理的事情!

谢谢你.

编辑 - 最终解决方案

感谢krlv

如果有人想要这个功能,并且js在woocommerce中的产品库(存档)中的产品中添加数量按钮(减号,输入,以及添加到购物车按钮旁边);

PHP for 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;
}
Run Code Online (Sandbox Code Playgroud)

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();
});

});
Run Code Online (Sandbox Code Playgroud)

krl*_*rlv 5

您不需要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>';
Run Code Online (Sandbox Code Playgroud)