我正在尝试覆盖所有外部/附属WooCommerce产品的“购买产品”按钮的URL。该按钮需要链接到联系页面,并在“主题”表单字段中预先填写通过查询字符串包含的产品标题(例如,产品查询:产品标题)。
在阅读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新手,我不确定如何将其实现到函数中?
谢谢。
答案 0 :(得分:0)
最终使用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 );