编程语言
首页 > 编程语言> > php – 使用WPML插件更改所有语言的“返回商店”URL

php – 使用WPML插件更改所有语言的“返回商店”URL

作者:互联网

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

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

/**
 * 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' );

如何使这个工作获得当前的语言商店链接?

谢谢.

解决方法:

Update2:在您的代码中,您需要使用:

> WooCommerce wc_get_page_id()功能获取WooCommerce商店页面ID.
> WPML wpml_object_id过滤器钩子,以获取当前语言翻译的商店页面ID.
>过滤钩本身使用的WooCommerce wc_get_page_permalink()(见HERE)

使用该材料,您可以获得商店(或任何其他链接)的当前翻译链接.

所以你的代码将是:

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文件中,或者放在任何插件文件中.

最后我测试了它的工作原理……

标签:wordpress,php,woocommerce,multilanguage,wpml
来源: https://codeday.me/bug/20190623/1266048.html