Semelhante a este , mas não totalmente.
Tenho um produto de assinatura variável que pode ser pago em 12 parcelas mensais.
se "Número de parcelas" for "Pagar integralmente", gostaria de poder alterar o texto £xxx para 1 mês:
E então mantenha as próximas 11 parcelas como para 2 meses / 3 meses, etc.
Sei que esse código só mostrará os preços, mas não consigo modificá-lo para alterar apenas 1 mês (opção de pagamento integral):
add_filter('woocommerce_subscriptions_product_price_string_inclusions', 'remove_subscription_inclusions', 10, 2);
function remove_subscription_inclusions( $include, $product ) {
$include['subscription_length'] = '';
$include['subscription_period'] = '';
return $include;
}
Eu tentei isso, mas não teve efeito algum:
add_filter('woocommerce_subscriptions_product_price_string_inclusions', 'custom_subscription_price_string_inclusions', 10, 2);
function custom_subscription_price_string_inclusions( $include, $product ) {
// Check if the product is a subscription product
if ($product->is_type('subscription')) {
// Get the variations of the subscription product
$variations = $product->get_available_variations();
// Loop through each variation to check for the 1-month payment option
foreach ($variations as $variation) {
// Get the variation's price and subscription length/period
$regular_price = $variation['display_price'];
$subscription_length = isset($variation['attributes']['pa_subscription_length']) ? $variation['attributes']['pa_subscription_length'] : '';
$subscription_period = isset($variation['attributes']['pa_subscription_period']) ? $variation['attributes']['pa_subscription_period'] : '';
// Check if this variation is the 1 month (single payment) option
if ('1' === $subscription_length && 'month' === $subscription_period) {
// Modify the price string for the 1 month single payment option
$include['price_string'] = '£' . $regular_price . ' (Full payment for 1 month)';
// Remove subscription length and period to avoid duplication
$include['subscription_length'] = '';
$include['subscription_period'] = '';
}
}
}
return $include;
}