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