覆盖 External/Affiliate 产品按钮 URL(使用查询字符串参数)

Override External/Affiliate Product Button URL (with Query String Parameters)

我正在尝试覆盖所有 External/Affiliate WooCommerce 产品的 'Buy Product' 按钮的 URL。该按钮需要 link 联系页面和 pre-fill 'Subject' 表单字段,其中包含通过查询字符串包含的产品标题(例如产品查询:产品标题)。

阅读 后,我已经能够通过将以下内容添加到 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 菜鸟,我只是不确定如何将其实现到函数中?

谢谢。

最终改用 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 );