Переопределить внешний / партнерский URL кнопки продукта (с параметрами строки запроса) - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь переопределить URL-адрес кнопки «Купить продукт» для всех внешних / аффилированных продуктов WooCommerce. Кнопка должна перейти на страницу контакта и предварительно заполнить поле формы «Тема» названием продукта, включенным в строку запроса (например, запрос продукта: Название продукта).

После прочтения https://stackoverflow.com/a/43947253/4068853 Я смог довольно близко подойти, добавив в файл functions.php следующее:

// Override external button url
function override_external_product_url( $url, $product ){
    if ( 'external' === $product->get_type() ) {
        // custom add to cart url example
        $url = home_url( "/contact/?your-subject=Product enquiry:");
    }
    return $url;
}
add_filter( 'woocommerce_product_add_to_cart_url', 'override_external_product_url', 10, 2 );

Осталось только добавить название продукта в конец строки запроса. Я знаю, что название продукта можно получить с помощью <?php the_title_attribute(); ?>, но, будучи нубом PHP, я просто не уверен, как реализовать это в функции?

Спасибо.

1 Ответ

0 голосов
/ 27 июня 2018

Завершено с использованием get_the_title вместо этого, потому что the_title_attribute вызывал ошибку (дублирование текста названия продукта и рендеринг вне разметки кнопки). Также добавлена ​​кодировка URL, конечный код выглядит так:

// Override external button url
function override_external_product_url( $url, $product ){
    if ( 'external' === $product->get_type() ) {
        // custom add to cart url example
        $url = home_url("/contact/?your-subject=" . urlencode("Product Enquiry: " . get_the_title()));
    }
    return $url;
}
add_filter( 'woocommerce_product_add_to_cart_url', 'override_external_product_url', 10, 2 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...