根据操作系统/浏览器提供不同的文件

时间:2020-05-22 作者:user2682863

我有一个销售软件的电子商务网站。该软件目前仅受windows支持,但我们正在努力将其引入MacOS。一旦它可用,我们想区分下载,以便windows用户获得windows安装程序,mac用户获得mac应用程序。是否有插件可以启用此功能?

1 个回复
SO网友:Tony Djukic

以下内容将帮助您识别操作系统和浏览器,并将类添加到body标记中,以便在加载页面时参考。您可以修改整个过程,以便它确定要使用哪个下载链接。这就是我用来区分CSS的目的,但最终你想要的是识别操作系统。

strtolower( $_SERVER[\'HTTP_USER_AGENT\'] ); 标识正在使用的浏览器。getenv( \'HTTP_USER_AGENT\' ); 获取环境/操作系统。

<?php 
function os_browser_body_class( $class ) {
        $brwsr = array(
            \'msie\',
            \'firefox\',
            \'webkit\',
            \'opera\'
        );
        $os = array(
            \'Windows\',
            \'Mac\', //will include Mac OS & Apple iOS
            \'Macintosh\' //just Mac OS
        );
        $user_brwsr = strtolower( $_SERVER[\'HTTP_USER_AGENT\'] );
        $user_agent = getenv( \'HTTP_USER_AGENT\' ); 
        foreach( $brwsr as $name ) {
            if( strpos( $user_brwsr, $name ) > -1 ) {
                $class[] = $name;
                preg_match( \'/\' . $name . \'[\\/|\\s](\\d)/i\', $user_brwsr, $matches );
                if ( $matches[1] )
                $class[] = $name . \'-\' . $matches[1];
                return $class;
            }
        }
        foreach( $os as $name ) {
            if( strpos( $user_agent, $name ) > -1 ) {
                $class[] = $name;
                preg_match( \'/\' . $name . \'[\\/|\\s](\\d)/i\', $user_agent, $matches );
                if ( $matches[1] )
                $class[] = $name . \'-\' . $matches[1];
                return $class;
            }
        }
        return $class;
    }
    add_filter( \'body_class\', \'os_browser_body_class\' );
?>
您也可以通过以下方式简化它:

<?php 
$user_agent = getenv( \'HTTP_USER_AGENT\' ); 
if( $user_agent == \'Windows\' ) :
    $app_download = \'http://downloadurl.com/to-your-app/windows-version.zip\';
elseif( $user_agent == \'Mac\' ) :
    $app_download = \'http://downloadurl.com/to-your-app/mac-version.zip\';
endif;  
?>
然后在您的页面上,您只需使用回音将适当的链接放置到位:

echo $app_download;

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。