Move the subscription cart check into the callbacks.

The subscription product in cart existence and the vaulting enabled check should be called inside the button renderer hook callback so that the mini-cart ajax refresh will take it into the consideration.
This commit is contained in:
Narek Zakarian 2022-05-02 17:48:14 +04:00
parent 6ebd88230b
commit c4f5d7a139

View file

@ -220,16 +220,15 @@ class SmartButton implements SmartButtonInterface {
* @throws \WooCommerce\PayPalCommerce\WcGateway\Exception\NotFoundException When a setting was not found.
*/
public function render_wrapper(): bool {
if ( ! $this->can_save_vault_token() && $this->has_subscriptions() ) {
return false;
}
if ( $this->settings->has( 'enabled' ) && $this->settings->get( 'enabled' ) ) {
$this->render_button_wrapper_registrar();
$this->render_message_wrapper_registrar();
}
if ( ! $this->can_save_vault_token() && $this->has_subscriptions() ) {
return false;
}
if (
$this->settings->has( 'dcc_enabled' )
&& $this->settings->get( 'dcc_enabled' )
@ -432,6 +431,10 @@ class SmartButton implements SmartButtonInterface {
add_action(
$this->mini_cart_button_renderer_hook(),
function () {
if ( ! $this->can_save_vault_token() && $this->has_subscriptions() ) {
return;
}
if ( $this->is_cart_price_total_zero() || $this->is_free_trial_cart() ) {
return;
}
@ -521,6 +524,11 @@ class SmartButton implements SmartButtonInterface {
* Renders the HTML for the buttons.
*/
public function button_renderer() {
if ( ! $this->can_save_vault_token() && $this->has_subscriptions() ) {
return;
}
$product = wc_get_product();
if (
! is_checkout() && is_a( $product, \WC_Product::class )
@ -548,6 +556,9 @@ class SmartButton implements SmartButtonInterface {
* Renders the HTML for the credit messaging.
*/
public function message_renderer() {
if ( ! $this->can_save_vault_token() && $this->has_subscriptions() ) {
return false;
}
echo '<div id="ppcp-messages" data-partner-attribution-id="Woo_PPCP"></div>';
}