Попробуйте следующее, что изменит текст «добавить в корзину» продукта, если этот продукт уже был куплен клиентом на страницах с отдельным продуктом и на страницах архива
add_filter( 'woocommerce_product_add_to_cart_text', 'custom_add_to_cart_text', 900, 2 ); // Archive product pages
add_filter( 'woocommerce_product_single_add_to_cart_text', 'custom_add_to_cart_text', 900, 2 ); // Single product pages
function custom_add_to_cart_text( $button_text, $product ) {
$current_user = wp_get_current_user();
if( wc_customer_bought_product( $current_user->user_email, $current_user->ID, $product->get_id() ) ) {
$button_text = __("Custom text", "woocommerce");
}
return $button_text;
}
Код входит в функции. php файл вашей активной дочерней темы (или активной темы). Это должно работать.
Теперь вы также можете ограничить это указанием c идентификаторов продукта , например:
add_filter( 'woocommerce_product_add_to_cart_text', 'custom_add_to_cart_text', 900, 2 ); // Archive product pages
add_filter( 'woocommerce_product_single_add_to_cart_text', 'custom_add_to_cart_text', 900, 2 ); // Single product pages
function custom_loop_add_to_cart_button( $button_text, $product ) {
$current_user = wp_get_current_user();
// HERE define your specific product IDs in this array
$specific_ids = array(37, 40, 53);
if( wc_customer_bought_product( $current_user->user_email, $current_user->ID, $product->get_id() )
&& in_array( $product->get_id(), $specific_ids ) ) {
$button_text = __("Custom text", "woocommerce");
}
return $button_text;
}
Код входит в функции. php файл вашей активной дочерней темы (или активной темы). это должно работать.
Некоторые связанные ответы Темы: