Php 改变;“返回店铺”;使用WPML插件的所有语言的URL

Php 改变;“返回店铺”;使用WPML插件的所有语言的URL,php,wordpress,woocommerce,multilingual,wpml,Php,Wordpress,Woocommerce,Multilingual,Wpml,在我的WooCommerce网上商店中,我想将“返回商店”URL更改为自定义URL。我试图在我的活动主题的function.php文件中使用下面的代码,但它不起作用 在我的网站上,我有五种由商业插件管理的活动语言。它还运行一个脚本,确保来自这些国家的访问者被重定向到他们自己的语言 /** * Changes Return to Shop button URL on Cart page. * */ function wc_empty_cart_redirect_url() {

在我的WooCommerce网上商店中,我想将“返回商店”URL更改为自定义URL。我试图在我的活动主题的
function.php
文件中使用下面的代码,但它不起作用

在我的网站上,我有五种由商业插件管理的活动语言。它还运行一个脚本,确保来自这些国家的访问者被重定向到他们自己的语言

/**
 * Changes Return to Shop button URL on Cart page.
 *
 */

function wc_empty_cart_redirect_url() {
        return 'http://pacsymposium.com/';
}
add_filter( 'woocommerce_return_to_shop_redirect', 'wc_empty_cart_redirect_url' );
我如何才能使其工作以获得当前的语言商店链接


谢谢。

更新2:在代码中,您需要使用:

  • WooCommerce函数获取WooCommerce商店页面ID
  • WPML过滤器挂钩,用于获取商店的当前语言翻译页面ID
  • 过滤器挂钩本身使用的数据(请参阅)
有了这些资料,你可以得到商店的当前翻译链接(或任何其他链接)

因此,您的代码将是:

add_filter( 'woocommerce_return_to_shop_redirect', 'wc_empty_cart_redirect_url' );
function wc_empty_cart_redirect_url() {

    // Getting the shop ID
    $shop_id = wc_get_page_id( 'shop' );

    // Getting the current language ID for the shop page
    $current_lang_id = apply_filters( 'wpml_object_id', $shop_id, 'page', TRUE );

    // Getting the post object for the ID
    $post = get_post($current_lang_id);

    // Getting the slug from this post object
    $slug = $post->post_name;

    // We re-use wc_get_page_permalink() function just like in this hook
    $link = wc_get_page_permalink( $slug );

    return  $link;
}
代码位于活动子主题(或主题)的function.php文件或任何插件文件中

最后我测试了它,它工作了