Javascript 在新选项卡中打开Wordpress PHP重定向

Javascript 在新选项卡中打开Wordpress PHP重定向,javascript,php,wordpress,redirect,Javascript,Php,Wordpress,Redirect,我对网络开发相当陌生。目前,我正在尝试解决以下问题:我正在为我的网站使用Wordpress和Woocommerce插件。我不需要woocommerce的购物车功能,所以我决定将“添加到购物车”调用操作直接重定向到结帐页面。我可以在function.php文件中使用以下代码段。 function redirect_checkout_add_cart( $url ) { $url = get_permalink( get_option( 'woocommerce_checkout_page_id

我对网络开发相当陌生。目前,我正在尝试解决以下问题:我正在为我的网站使用Wordpress和Woocommerce插件。我不需要woocommerce的购物车功能,所以我决定将“添加到购物车”调用操作直接重定向到结帐页面。我可以在function.php文件中使用以下代码段。
function redirect_checkout_add_cart( $url ) {
  $url = get_permalink( get_option( 'woocommerce_checkout_page_id' ) );
  return $url;
};
?>
但是,我希望重定向/签出页面位于新选项卡中(最好不是新窗口)。我试图通过修改“redirect\u checkout\u add\u cart”函数来实现这一点


var URL='';
打开(URL,“U空白”);
它成功地打开了一个带有重定向的新选项卡。然而,不知何故,它用“添加到购物车”调用操作按钮打乱了页面的样式。此外,它感觉不像我现在这样干净地编码,但请原谅我,因为这是我第一个网络编码项目:)


有人知道出了什么问题吗?也欢迎任何适用于此问题的来源/提示。

首先,我必须道歉,因为我的一些评论实际上不适用。“woocommerce\u add\u to\u cart\u redirect”过滤器在项目添加到购物车后应用,因此我对空购物车的评论毫无意义。事实上,你的答案离成功不远。这是我的解决方案,有一个问题,我将在后面解释

add_filter( 'woocommerce_add_to_cart_redirect', function( $url ) {
    static $done = false;
    if ( $done ) {
        return $url;
    }
    add_action( 'wp_print_footer_scripts', function() {
?>
<script>
    window.open( '<?php echo wc_get_checkout_url(); ?>', '_blank' );
</script>
<?php
    });
    $done = true;
    return $url;
});
add_过滤器('woocommerce_add_to_cart_redirect',函数($url){
静态$done=false;
如果($完成){
返回$url;
}
添加操作('wp\u print\u footer\u scripts',函数(){
?>
窗口。打开(“U空白”);

这里有很多错误。此筛选器应返回URL。处理筛选器时,此筛选器将向HTML文档中注入元素,该元素可以位于文档中的任何位置,具体取决于调用筛选器的时间。此脚本将自动打开新页面,即在单击“提交”按钮时不会打开。此外,添加到c艺术的存在是为了将项目放入购物车。此购物车用于生成订单。如果您跳过“添加到购物车”,则必须自己生成订单。这可以通过不同的方法完成,但您确实需要很好地了解WooCommerce插件的工作原理。我建议您学习WC\u Checkout::create\u order().我不认为这是一个初学者的项目,但它是可以完成的。进一步思考,这并不难(但不容易)让添加到购物车调用服务器,像往常一样将项目添加到购物车。现在购物车是用单个项目创建的,而不是重新加载页面,重定向到签出,因为购物车已经创建,可以正常工作。谢谢你,品红。我将更深入地研究插件。我已经为以前的woocommerce版本找到了一个解决方案我不为我工作(我在woocommerce 3.1上);我认为这种方法无法解决您的问题。请确保我了解您的问题。您想跳过购物车步骤,因为购物车中始终只有一个项目。这是否正确?
add_filter( 'woocommerce_add_to_cart_redirect', function( $url ) {
    static $done = false;
    if ( $done ) {
        return $url;
    }
    add_action( 'wp_print_footer_scripts', function() {
?>
<script>
    window.open( '<?php echo wc_get_checkout_url(); ?>', '_blank' );
</script>
<?php
    });
    $done = true;
    return $url;
});