Мне нужно установить пользовательский текст, такой как «Бесплатная загрузка» вместо цены 0 для Easy Digital Download как для одиночной, так и для переменной цены.
Я нашел фрагмент кода ниже, в котором есть необходимые функции для переменной цены, но он работает только для единичных цен:
function sumobi_edd_free_download_text_args( $args ) {
// Enter the button text for a free download
$free_download_text = 'Free download';
$variable_pricing = edd_has_variable_prices( $args['download_id'] );
if ( $args['price'] && $args['price'] !== 'no' && ! $variable_pricing ) {
$price = edd_get_download_price( $args['download_id'] );
if ( 0 == $price ) {
$args['text'] = $free_download_text;
}
}
return $args;
}
add_filter( 'edd_purchase_link_args', 'sumobi_edd_free_download_text_args' );
Как это вообще возможно? Я имею в виду, что могу ясно видеть часть $variable_pricing = edd_has_variable_prices
, но вместо этого она меняет единую цену.
Редактировать: теперь я почти уверен, что все это имеет отношение к строке $args['text'] = $free_download_text;
, если бы я мог добавить «цена» к этой строке, тогда она перезапишет 0 цен. Я попробовал это, но это не сработало: $args['text'] && $args['price'] = $free_download_text;