Измените текст «добавить в корзину», если пользователь купил определенные c продуктов в WooCommerce - PullRequest
0 голосов
/ 02 мая 2020

Я хотел бы узнать, есть ли способ заменить кнопку "добавить в корзину" woo-commerce пользовательским текстом и URL для указанного c продукта , если пользователь купил этот указанный c продукт .

и я хочу, чтобы это происходило везде (на странице магазина, на странице товара, ...)

1 Ответ

1 голос
/ 02 мая 2020

Попробуйте следующее, что изменит текст «добавить в корзину» продукта, если этот продукт уже был куплен клиентом на страницах с отдельным продуктом и на страницах архива

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 файл вашей активной дочерней темы (или активной темы). это должно работать.

Некоторые связанные ответы Темы:

...