Php 没有插件的电子商务AMP版本

Php 没有插件的电子商务AMP版本,php,wordpress,woocommerce,amp-html,Php,Wordpress,Woocommerce,Amp Html,我有两个电子商务网站的产品页面:一个用WoodPress的Woocommerce制作,另一个用AMP编码 是WordPress页面,是AMP页面。如果不考虑这两个页面位于两个不同的子域上,我如何将移动用户重定向到页面的AMP版本 有人问了一个类似的问题,但它只指定了如何为简单页面而不是产品页面执行此操作 有人知道怎么做吗?要回答您的问题,如果您不想使用插件,您必须在theme functions.php中硬编码以下几行 根据您的问题,采用以下方法使其发挥作用 在WooCommerce的产品发布类

我有两个电子商务网站的产品页面:一个用WoodPress的Woocommerce制作,另一个用AMP编码

是WordPress页面,是AMP页面。如果不考虑这两个页面位于两个不同的子域上,我如何将移动用户重定向到页面的AMP版本

有人问了一个类似的问题,但它只指定了如何为简单页面而不是产品页面执行此操作


有人知道怎么做吗?

要回答您的问题,如果您不想使用插件,您必须在theme functions.php中硬编码以下几行

根据您的问题,采用以下方法使其发挥作用

在WooCommerce的产品发布类型中创建Metabox 将输入字段添加到创建的元框中 通过Save_post操作挂钩保存输入字段 输入每个产品的特定URL 从产品中获取保存的数据,如果是移动用户,则重定向。 步骤1:创建元盒

步骤2:添加输入字段

步骤4:将移动用户重定向到移动版本

步骤5:为谷歌添加可发现的链接


我测试了上面的代码,似乎效果很好。

这是伟大的Vignesh,它可以工作!非常感谢。还有一件事我很担心。为了让AMP被谷歌发现,我们需要添加到原始页面。您是如何为所有产品页面和主页做到这一点的?再次感谢!如果我想为页面添加相同的元框,我可以通过将步骤1中的“产品”更改为“页面”来使用相同的代码吗?这样,我也可以为我的主页或产品页面开发一个AMP页面,并将移动用户重定向到AMP版本,就像你为产品所做的那样。你完全正确,唯一需要检查的是条件,如果产品是主页,是主页,是首页,是首页,它工作得很好!最后一个问题:您是否使用这些方法在AMP和WooCommerce中运行了一个包含购物车和支付流的网站?我们仍在考虑我们的选择。让我害怕的是添加到购物车的过程。WooCommerce有其特殊的处理方式。使用两种不同的方式添加到购物车来维护和跟踪销售,这不是一场噩梦吗?例如,您认为在AMP和WooCommerce中使用自定义PHP代码是否可行。我问这个问题是因为我的同事想用一种简单的方法来添加产品,而我想让我们的商店使用AMP的速度。不,我没有使用AMP管理任何网站,但我会在您的AMP移动网站上指导一些想法,一旦订单完成,然后使用woocommerce rest api,您可以在主站点中创建订单,以便使用此选项跟踪订单和交付。更多信息
//Create Metabox
function wc_49570125_register_meta_boxes() {
    add_meta_box('meta-box-id', __('Mobile Version URL', 'yourtextdomain'), 'wc_49570125_my_display_callback', 'product');
}

add_action('add_meta_boxes', 'wc_49570125_register_meta_boxes');
// Add Input Field
function wc_49570125_my_display_callback($post) {
    $get_id = $post->ID;
    $get_value = get_post_meta($get_id, 'wc_mobile_version_url', true);
    ?>
    <p>
        <label><?php _e('Mobile URL to Redirect', 'yourtextdomain'); ?></label>
        <input type="text" name="wc_mobile_version_url" value="<?php echo $get_value; ?>"/>
    </p>
    <?php
}
// save input field
function wc_49570125_save_meta_box($post_id) {
    $post_type = get_post_type($post_id);
    if ('product' != $post_type) {
        return;
    }
    if (isset($_POST['wc_mobile_version_url'])) {
        $mobile_version = $_POST['wc_mobile_version_url'];
        update_post_meta($post_id, 'wc_mobile_version_url', $mobile_version);
    }
}

add_action('save_post', 'wc_49570125_save_meta_box');
// redirect input field

function wc_49570125_mobile_redirect() {
    global $product, $post;
    if (is_product()) {
        $get_id = $post->ID;
        $amp_location = get_post_meta($get_id, 'wc_mobile_version_url', true);
        if (wp_is_mobile() && $amp_location) {
            wp_redirect($amp_location);
            exit;
        }
    }
}

add_action('wp', 'wc_49570125_mobile_redirect');
function wc_49570125_amp_google_link() {
    global $product, $post;
    if (is_product()) {
        $get_id = $post->ID;
        $amp_location = get_post_meta($get_id, 'wc_mobile_version_url', true);
        if ($amp_location) {
            ?>
            <link rel="amphtml" href="<?php echo $amp_location; ?>"/>
            <?php
        }
    }
}

add_action('wp_head', 'wc_49570125_amp_google_link');