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 文件