WooCommerce 根据购物车中的产品更改复选框值
WooCommerce change checkbox value based on product in cart
我们使用支付网关插件。有一个用于定期订阅的设置。现在我们有一个订阅,我们需要选中该复选框,而我们有一个子订阅,我们不需要该重复复选框。
这是原始插件代码:
<input type="checkbox" checked name="payrexx-allow-recurring" id="payrexx-allow-recurring" value="1" />
现在,如果特殊订阅(通过 ID 检查)在购物车中,则取消选中该复选框并隐藏该复选框。如果购物车中有另一个子项,则什么也不做。
我们可以用 PHP 做到这一点吗?还是这里需要 js?我是初学者,如果你们能告诉我如何做到这一点以及如何做到这一点,那就太好了。 :)
干杯和感谢
function conditional_checkout_fields_js( $fields ) {
$cart = WC()->cart->get_cart();
foreach ( $cart as $item_key => $values ) {
$product = $values['data'];
if ( $product->get_id() == 1631817356 ) { // Change the product ID
$html .= '<script type="text/javascript">
jQuery(function() {
jQuery("#payrexx-allow-recurring").prop("checked", false); // Unchecks it
jQuery("#payrexx-allow-recurring").hide();
});
</script>';
echo $html;
}
}
return $fields;
}
add_filter( 'woocommerce_checkout_fields', 'conditional_checkout_fields_js' );
将此添加到您的活动子主题 functions.php
文件
我们使用支付网关插件。有一个用于定期订阅的设置。现在我们有一个订阅,我们需要选中该复选框,而我们有一个子订阅,我们不需要该重复复选框。
这是原始插件代码:
<input type="checkbox" checked name="payrexx-allow-recurring" id="payrexx-allow-recurring" value="1" />
现在,如果特殊订阅(通过 ID 检查)在购物车中,则取消选中该复选框并隐藏该复选框。如果购物车中有另一个子项,则什么也不做。
我们可以用 PHP 做到这一点吗?还是这里需要 js?我是初学者,如果你们能告诉我如何做到这一点以及如何做到这一点,那就太好了。 :)
干杯和感谢
function conditional_checkout_fields_js( $fields ) {
$cart = WC()->cart->get_cart();
foreach ( $cart as $item_key => $values ) {
$product = $values['data'];
if ( $product->get_id() == 1631817356 ) { // Change the product ID
$html .= '<script type="text/javascript">
jQuery(function() {
jQuery("#payrexx-allow-recurring").prop("checked", false); // Unchecks it
jQuery("#payrexx-allow-recurring").hide();
});
</script>';
echo $html;
}
}
return $fields;
}
add_filter( 'woocommerce_checkout_fields', 'conditional_checkout_fields_js' );
将此添加到您的活动子主题 functions.php
文件