Bonsouir,当用户从单个产品页面添加到购物车产品时,我试图重定向到checkout,这是一个非常具体的页面,每个人都可以看到简单的产品
现在,当我将此代码添加到函数中时,一切都正常工作。php
function my_custom_add_to_cart_redirect( $url ) {
$url = wc_get_checkout_url();
return $url;
}
add_filter( \'woocommerce_add_to_cart_redirect\',\'my_custom_add_to_cart_redirect\');
但是,当我修改代码时,添加条件来区分那些不是使用此代码的单一产品页面的页面时,它不起作用
function my_custom_add_to_cart_redirect( $url ) {
if ( is_product() ){
$url = wc_get_checkout_url();
return $url;
}
}
add_filter( \'woocommerce_add_to_cart_redirect\', \'my_custom_add_to_cart_redirect\' );
我把条件和
echo "it works"
打印效果很好,但重定向不起作用。
你认为问题出在哪里,这应该有效,只是一个简单的条件,但对我不起作用,我使用Avada主题和Woocommerce更新
EDIT : 当我添加到购物车时,链接生成为
[www.domain.com]/product/[name-of-product]/?add-to-cart=[PRODUCTID]
路径
[www.domain.com]/product/[name-of-product]/
被视为Woocommerce的产品,但另一个包括
?add-to-cart=[PRODUCTID]
不被视为产品,但应该是因为它仍然是产品,只是通过GET发送变量
您知道如何将其识别为产品页吗?
最合适的回答,由SO网友:Johanna Ferreira 整理而成
在这种情况下对我有效的是这个代码
add_filter( \'woocommerce_add_to_cart_redirect\', \'redirect_add_to_cart\' );
function redirect_add_to_cart() {
if ( isset( $_POST[\'add-to-cart\'] ) ) {
$url = wc_get_checkout_url();
return $url;
}
}
如果它是一个产品,它会重定向,但如果你在商店页面,它不会重定向,当然,如果你想重定向到另一个页面,但在单个产品页面,代码应该是
if ( !isset( $_POST[\'add-to-cart\'] ) ) {
我希望我的问题和回答能帮助访问此帖子的人
SO网友:Aadil P.
函数is\\u product()和/或is\\u single()只能在wp\\u query()就绪后识别页面。显然,在代码运行时,所说的wp\\u query()没有任何内容,无法识别它是单个页面还是类别页面等。因此,在代码中,is\\u product()函数返回(bool)false。
在复制代码时,我从函数文件打印了wp\\u查询,结果如下。
如果在wp\\u query()准备就绪后添加操作,则可能实现您想要实现的目标,在这种情况下,更改重定向页面的第二个函数可能会起作用。
WP\\u查询对象([查询]=>[查询变量]=>数组()
[tax_query] =>
[meta_query] =>
[date_query] =>
[queried_object] =>
[queried_object_id] =>
[request] =>
[posts] =>
[post_count] => 0
[current_post] => -1
[in_the_loop] =>
[post] =>
[comments] =>
[comment_count] => 0
[current_comment] => -1
[comment] =>
[found_posts] => 0
[max_num_pages] => 0
[max_num_comment_pages] => 0
[is_single] =>
[is_preview] =>
[is_page] =>
[is_archive] =>
[is_date] =>
[is_year] =>
[is_month] =>
[is_day] =>
[is_time] =>
[is_author] =>
[is_category] =>
[is_tag] =>
[is_tax] =>
[is_search] =>
[is_feed] =>
[is_comment_feed] =>
[is_trackback] =>
[is_home] =>
[is_404] =>
[is_embed] =>
[is_paged] =>
[is_admin] =>
[is_attachment] =>
[is_singular] =>
[is_robots] =>
[is_posts_page] =>
[is_post_type_archive] =>
[query_vars_hash:WP_Query:private] =>
[query_vars_changed:WP_Query:private] => 1
[thumbnails_cached] =>
[stopwords:WP_Query:private] =>
[compat_fields:WP_Query:private] => Array
(
[0] => query_vars_hash
[1] => query_vars_changed
)
[compat_methods:WP_Query:private] => Array
(
[0] => init_query_flags
[1] => parse_tax_query
)
)是否为产品?布尔(假)