我对WooCommerce很陌生,这里是我的问题。我成功地扩展了购物车的默认模板,现在它看起来像这样:
自定义文件路径:my-theme/woocommerce/cart/cart.php
大多数更改都发生在cart.php文件中:下面是表中内容的结构,最后一个是“product-remove”按钮。
表格内容结构(表格的前三个单元格):
<td class="">
<input type="checkbox" name="demoCheckBox" value="1" onClick="onClickCheckbox()">
<script>
function onClickCheckbox() {
return "<?php echo 'Hello World';?>"
}
</script>
</td>
<td class="product-thumbnail">
<?php
$thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );
if ( ! $product_permalink ) {
ho $thumbnail; // PHPCS: XSS ok.
} else {
printf( '<a href="%s">%s</a>', esc_url( $product_permalink ), $thumbnail ); // PHPCS: XSS ok.
}
?>
</td>
</td>
<td class="product-name" data-title="<?php esc_attr_e( 'Product', 'woocommerce' ); ?>">
<?php
if ( ! $product_permalink ) {
echo wp_kses_post( $product_name . ' ' );
} else {
/**
* This filter is documented above.
*
* @since 2.1.0
*/
echo wp_kses_post( apply_filters( 'woocommerce_cart_item_name', sprintf( '<a href="%s">%s</a>', esc_url( $product_permalink ), $_product->get_name() ), $cart_item, $cart_item_key ) );
}
do_action( 'woocommerce_after_cart_item_name', $cart_item, $cart_item_key );
// Meta data.
echo wc_get_formatted_cart_item_data( $cart_item ); // PHPCS: XSS ok.
// Backorder notification.
if ( $_product->backorders_require_notification() && $_product->is_on_backorder( $cart_item['quantity'] ) ) {
echo wp_kses_post( apply_filters( 'woocommerce_cart_item_backorder_notification', '<p class="backorder_notification">' . esc_html__( 'Available on backorder', 'woocommerce' ) . '</p>', $product_id ) );
}
?>
</td>
问题:当有人选中复选框时,我需要知道所选项目的id。如何通过选择复选框触发复选框onChange函数,这将执行php代码,这应该添加产品ID,到全局数组.
如何修改下面的代码以达到这一点:
<td class="">
<input type="checkbox" name="demoCheckBox" value="1" onClick="onClickCheckbox()">
<script>
function onClickCheckbox () {
return "<?php
echo 'Hello World';
?>"
}
1条答案
按热度按时间wyyhbhjk1#
您可以使用WooCommerce Session变量,因为Cart和Checkout已经使用它们。
每次选中复选框时,购物车项目键和产品ID对将存储在会话变量(数组)中。如果未选中该复选框,则相关数据将从数组中删除(删除购物车项目时也是如此)。当下订单时,会话变量将被删除。
首先在
cart.php
模板中使用:然后在子主题的functions.php文件中添加以下内容:
要在PHP中获取存储的数据数组,您将使用:用途:
测试和作品。
如果要在下订单后使用此数据,则必须将其保存为订单中的自定义元数据。