Skip to content

Instantly share code, notes, and snippets.

@DmitryBychenko
Last active May 15, 2026 17:47
Show Gist options
  • Select an option

  • Save DmitryBychenko/e221b557557b3c11b224fa8ec2451b0d to your computer and use it in GitHub Desktop.

Select an option

Save DmitryBychenko/e221b557557b3c11b224fa8ec2451b0d to your computer and use it in GitHub Desktop.
/**
* Универсальное изменение текста кнопок WooCommerce (Архивы и Карточка товара)
* Разработано специально для 100% совместимости со всеми темами (включая Astra Pro, Blocksy, Elementor)
* Поддерживает мультиязычность (WPML, Polylang)
*/
// 1. Изменение текста в Карточке товара
add_filter( 'woocommerce_product_single_add_to_cart_text', 'tb_universal_single_product_text', 20, 1 );
function tb_universal_single_product_text( $text ) {
global $product;
// Подстраховка
if ( ! is_object( $product ) || ! method_exists( $product, 'get_type' ) ) {
return $text;
}
// --- КАРТОЧКА ТОВАРА ---
switch ( $product->get_type() ) {
// Для вариативного товара (текст кнопки после выбора атрибутов)
case 'variable':
return __( 'Записаться на выбранный курс', 'techbear-custom' );
break;
// Для внешнего/партнерского товара (если не задан в админке вручную)
case 'external':
return __( 'Перейти на сайт партнера', 'techbear-custom' );
break;
// Для простого товара и всех остальных по умолчанию
case 'simple':
default:
return __( 'Записаться на курс', 'techbear-custom' );
break;
}
}
// 2. Изменение текста в Архивах (Магазин, категории, апселы)
add_filter( 'woocommerce_product_add_to_cart_text', 'tb_universal_catalog_product_text', 20, 0 );
function tb_universal_catalog_product_text() {
global $product;
// Подстраховка
if ( ! is_object( $product ) || ! method_exists( $product, 'get_type' ) ) {
return __( 'Подробнее', 'woocommerce' );
}
// --- АРХИВЫ ---
switch ( $product->get_type() ) {
// Вариативный товар (кнопка "Выбрать параметры" по умолчанию)
case 'variable':
return __( 'Выбрать курс', 'techbear-custom' );
break;
// Сгруппированный товар (несколько товаров в одном)
case 'grouped':
return __( 'Посмотреть варианты', 'techbear-custom' );
break;
// Внешний / Партнерский товар (ссылка на другой сайт)
case 'external':
return __( 'Купить у партнера', 'techbear-custom' );
break;
// Простой товар в каталоге
case 'simple':
default:
return __( 'Записаться', 'techbear-custom' );
break;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment