首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将PHP代码回显到WooCommerce变体产品中?

如何将PHP代码回显到WooCommerce变体产品中?
EN

Stack Overflow用户
提问于 2018-09-27 03:28:49
回答 1查看 316关注 0票数 0

我有一个小复杂的问题要解释,我希望有人能理解和帮助我。

我已经在WooCommerce上设置了自定义字段,用于输入每个产品的特定代码(比如SKU称为"asin"),然后我在我的后端使用Amazon API从亚马逊的产品页面获取价格(不用担心我的问题是一般性的,与API无关)。

以下是我的简单产品类型的代码示例,它的工作方式完全符合我的需要。

代码语言:javascript
复制
<?php
    //This is the code i use to get the "asin" value from custom fields.
    $de_asin = get_post_meta(get_post()->ID, "wccaf_de_asin", true );

    $associate_id = "google-21";
    $access_key = "N22EKJMDWJMDWIJWIJWDIWDW";
    $secret_key = "48UJIFJIJFEIFJF89U8EKFIEJIUJWHUFUEFJFSIJF";
    $amazon_domain = "amazon.de";
    $asin = $de_asin;

    // This is the code i use to get the product price from amazon website using it's api
    include 'amazon-api/amazon_class.php';
    $amazon = new AmazonAPI($associate_id , $access_key, $secret_key , $amazon_domain);
    $item = $amazon->item_lookup($asin)->get_item_data();
    echo $item->price;

?>  

我的问题是变体产品,因为当我在变体之间切换时,我需要改变自定义价格。

这是我用来获得变化产品类型"asin code“的自定义产品值的代码,它工作得很好,但我需要添加与上面简单产品类似的价格,并使用当前选择的变体的asin,并在上面的amazon API变量上使用该asin。

我从这里的http://www.remicorson.com/woocommerce-custom-fields-for-variations/获得了变体产品的自定义字段

代码语言:javascript
复制
<?php

add_filter( 'woocommerce_available_variation', 'custom_load_variation_settings_products_fields' );
function custom_load_variation_settings_products_fields( $variations ) {    
    // duplicate the line for each field
    $variations['wccaf_de_asin_var'] = get_post_meta( $variations[ 'variation_id' ], 'wccaf_de_asin_var', true );   
    $variations['wccaf_uk_asin_var'] = get_post_meta( $variations[ 'variation_id' ], 'wccaf_uk_asin_var', true );   
    return $variations;
}

    //wccf_after_variation_description is a hook i created into variation.php
    add_action( 'wccf_after_variation_description', 'wcff_variation_affiliate_button', 10);
    function wcff_variation_affiliate_button() {

        // IP Geolocation   
        $country_code = $_SERVER ["HTTP_CF_IPCOUNTRY"];
        $de_asin = '{{{ data.variation.wccaf_de_asin_var }}}';
        $uk_asin = '{{{ data.variation.wccaf_uk_asin_var }}}';

        if ($country_code=="DE") {  
        $asin = $de_asin;   
        }

        if ($country_code=="GB") {  
        $asin = $uk_asin;
        }
        echo $asin;
    }   
    ?>  

我猜这里的主要问题是,在页面呈现后,此代码使用javascript获取所选变体的asin,我需要获取所选变体的asin并将其发送到php,这样我就可以通过amazon API发送它来获取价格。所以我想知道是否有任何方法可以使用第一个简单代码片段中显示的价格API代码,并在第二个变体代码片段中使用它?

提前感谢您:)

EN

回答 1

Stack Overflow用户

发布于 2018-09-27 05:57:26

我解决了这个问题,我缺少的是将API返回转换为字符串,这里是代码,希望它能帮助一些人。

代码语言:javascript
复制
<?php

add_filter( 'woocommerce_available_variation', 'custom_load_variation_settings_products_fields' );
function custom_load_variation_settings_products_fields( $variations ) {    
    // duplicate the line for each field
    $variations['wccaf_de_asin_var'] = get_post_meta( $variations[ 'variation_id' ], 'wccaf_de_asin_var', true );   
    $variations['wccaf_uk_asin_var'] = get_post_meta( $variations[ 'variation_id' ], 'wccaf_uk_asin_var', true );  
    $amazon = new AmazonAPI("GOOGLE-21", "JIJIOJEFIOJEIOFEJFIO", "DJWIJDIWOJDFIJIOFJDIOWJQFOIJIOIOJWID");
    $item = $amazon->item_lookup($variations['wccaf_de_asin_var'])->get_item_data(); 
    $variations['amz_price_var_de'] = (string) $item->price;    
    return $variations;
}

    //wccf_after_variation_description is a hook i created into variation.php
    add_action( 'wccf_after_variation_description', 'wcff_variation_affiliate_button', 10);
    function wcff_variation_affiliate_button() {

        // IP Geolocation   
        $country_code = $_SERVER ["HTTP_CF_IPCOUNTRY"];
        $de_asin = '{{{ data.variation.wccaf_de_asin_var }}}';
        $uk_asin = '{{{ data.variation.wccaf_uk_asin_var }}}';

        if ($country_code=="DE") {  
        $asin = $de_asin;   
        }

        if ($country_code=="GB") {  
        $asin = $uk_asin;
        }
        echo $asin;


        ?>
<div class="buy_amz_btn_wrap" >     
{{{data.variation.amz_price_var_de}}}
</div>
<?php

    }   
    ?>  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52524854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档