标签: woocommerce

WooCommerce按ID返回产品对象

我正在为woocommerce创建一个自定义主题,我需要能够创建一个迷你产品展示.我在找到woocommerce api的文档时遇到了问题.我有一个逗号分隔的产品ID列表,我需要迭代并按顺序显示每个产品ID的自定义迷你产品显示.

$key_values = get_post_custom_values('rel_products_ids');
//get comma delimited list from product

$rel_product_ids = explode(",", trim($key_values, ",")); 
// create array of just the product ids

foreach ( $rel_product_ids as $pid ) { 
    //sequentially get each id and do something with it

    $loop = new WP_Query( array( 'post__in' => $pid ) );
    // also tried ...
    //$loop = new WP_Query( array( 'ID' => $pid ) );

    while ( $loop->have_posts() ) : $loop->the_post(); $_product = &new WC_Product( $loop->post->ID );
        //do stuff here I …
Run Code Online (Sandbox Code Playgroud)

php wordpress woocommerce

36
推荐指数
3
解决办法
10万
查看次数

WooCommerce - 获取产品页面的类别

对于我的WC产品页面,我需要在body标签中添加一个类,以便我可以执行一些自定义样式.这是我为此创建的功能......

function my_add_woo_cat_class($classes) {

    $wooCatIdForThisProduct = "?????"; //help!

    // add 'class-name' to the $classes array
    $classes[] = 'my-woo-cat-id-' . $wooCatIdForThisProduct;
    // return the $classes array
    return $classes;
}

//If we're showing a WC product page
if (is_product()) {
    // Add specific CSS class by filter
    add_filter('body_class','my_add_woo_cat_class');
}
Run Code Online (Sandbox Code Playgroud)

...但是如何获得WooCommerce猫咪ID?

php wordpress woocommerce

34
推荐指数
4
解决办法
16万
查看次数

WooCommerce勾选"付款后完成"操作

我正在使用WooCommerce和Wordpress.我有一个自定义许可证密钥生成器,当有人通过WooCommerce成功购买我的插件时,我希望它能生成许可证密钥.

看起来很简单:

  1. 用户在我的网站上完成结帐
  2. 用户被重定向到Paypal,他们在那里输入他们的付款凭证
  3. Paypal告诉我的网站付款已完成
  4. 我勾选到某种"付款完成"或"order_complete"WooCommerce操作并生成许可证.

这就是问题所在:我真的不确定哪个钩子可以很好地用于此.Woocommerce 在他们的网站上列出了他们的整个钩子集合,但几乎没有关于哪个有利于什么的文档.

基于钩子名称,我认为这woocommerce_payment_complete将是一个很好的行动.不幸的是,似乎根本没有被解雇; 我读过的一些地方说它永远不会被解雇.

我也读过一些关于Paypal IPN的内容,但是我不明白我是如何从那里获取通知的(连接到Woocommerce钩子吗?)

简而言之,我想在验证付款后立即生成许可证密钥.为了达到这个目的,我该怎么做?

php wordpress paypal woocommerce

34
推荐指数
2
解决办法
4万
查看次数

WooCommerce - 从我的帐户页面中的菜单中删除下载

我想从我的帐户页面中删除下载菜单.

我怎样才能做到这一点?从菜单中删除特定项目是否有任何钩子?

谢谢.

php account wordpress woocommerce hook-woocommerce

34
推荐指数
2
解决办法
4万
查看次数

如何禁用woocommerce中产品详细信息页面中的数量字段?

我需要在产品详细信息页面上的Woocommerce中隐藏"数量"字段(在添加到购物车之前输入数量),并且仅显示"添加到购物车"按钮,然后将数量设置为1在购物车中.原因是因为我根据重力形式收集数量.

woocommerce

33
推荐指数
4
解决办法
9万
查看次数

以编程方式在Woocommerce中应用优惠券

在Woocommerce中,我试图找到一种方法,如果购物车中的重量超过100磅,则可以对整个客户的订单应用10%的折扣.我是实现这一目标的一部分.对于下一步,我正在寻找一种通过actions.php以动作/钩子编程方式应用优惠券代码的方法.

似乎我可以使用函数woocommerce_ajax_apply_coupon来执行此操作(http://docs.woothemes.com/wc-apidocs/function-woocommerce_ajax_apply_coupon.html)但我不确定如何使用它.

到目前为止,我已经修改了cart.php以获得购物车中所有产品的总重量,我创建了一个应用折扣的优惠券(如果手动输入),我已经在functions.php中添加了一些代码来检查重量并向用户显示消息.

编辑:删除了部分代码,完成的代码包含在下面的解决方案中.


感谢Freney的指导.这是工作最终结果,它在条件满足时成功应用折扣优惠券,并在不再符合条件时将其删除:

/* Mod: 10% Discount for weight greater than 100 lbs 
Works with code added to child theme: woocommerce/cart/cart.php lines 13 - 14: which gets $total_weight of cart:
        global $total_weight;
        $total_weight = $woocommerce->cart->cart_contents_weight;
*/
add_action('woocommerce_before_cart_table', 'discount_when_weight_greater_than_100');
function discount_when_weight_greater_than_100( ) {
    global $woocommerce;
    global $total_weight;
    if( $total_weight > 100 ) {
        $coupon_code = '999';
        if (!$woocommerce->cart->add_discount( sanitize_text_field( $coupon_code ))) {
            $woocommerce->show_messages();
        }
        echo '<div class="woocommerce_message"><strong>Your order is over 100 lbs so a 10% Discount has …
Run Code Online (Sandbox Code Playgroud)

php wordpress discount coupon woocommerce

29
推荐指数
3
解决办法
4万
查看次数

woocommerce get_woocommerce_currency_symbol()

我正在开发一个woocommerce WordPress插件的扩展.

我想在自定义函数中显示循环外的货币符号

我有以下内容:

function my_function( ) {
   global  $woocommerce;
   echo get_woocommerce_currency_symbol();
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么,但这不输出符号?我错过了什么吗?

wordpress woocommerce

29
推荐指数
5
解决办法
5万
查看次数

WooCommerce - 我在哪里可以编辑钩子生成的HTML?

我是WooCommerce的新手.无论如何,我想创建自己的主题,所以我遵循指南并将核心模板文件复制到/ mywordpresstheme/woocommerce /.

一切都很好,我正在编辑模板就好了.

然而,在WooCommerce中钩子和动作的工作方式令我感到困惑,我无法确定生成的HTML的某些部分来自何处.

例如,在content-product.php,有一个获取图像的钩子:

<?php
/*
* woocommerce_before_shop_loop_item_title hook
*
* @hooked woocommerce_show_product_loop_sale_flash - 10
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action( 'woocommerce_before_shop_loop_item_title' );
?>
Run Code Online (Sandbox Code Playgroud)

但这是什么?它从何而来??在动作名称中是否有任何线索可以找到为编辑它而生成的HTML的位置?

我已经阅读了关于WooCommerce的"钩子和过滤器"的文章,但它没有解释在何种情况下或如何根据案例更改这些内容.

任何帮助将不胜感激.

我是这个系统的新手,我确信我只是在看一些非常明显的东西.

谢谢,Mikey.

wordpress wordpress-theming wordpress-plugin e-commerce woocommerce

28
推荐指数
1
解决办法
3万
查看次数

如何在woocommerce中获得产品的特色图像

请告诉我哪里出错了.产品特色图片未显示.

   $args = array( 'post_type' => 'product', 'posts_per_page' => 80, 'product_cat' => 'profiler', 'orderby' => 'rand' );

    $loop = new WP_Query( $args );

   while ( $loop->have_posts() ) : $loop->the_post(); global $product; ?>

    <div class="dvThumb col-xs-4 col-sm-3 col-md-3 profiler-select profiler<?php echo the_title(); ?>" data-profile="<?php echo $loop->post->ID; ?>">

    <img src="<?php  get_the_post_thumbnail($loop->post->ID); ?>" data-id="<?php echo $loop->post->ID; ?>">

    <p><?php the_title(); ?></p>

    <span class="price"><?php echo $product->get_price_html(); ?></span>                    
    </div>
Run Code Online (Sandbox Code Playgroud)

我已经在后端添加了一个精选图片

wordpress woocommerce

27
推荐指数
7
解决办法
9万
查看次数

WooCommerce:自动完成付款订单(取决于付款方式)

通常,wooCommerce应该自动完成虚拟产品的订单.但它没有,这是一个真正的问题,甚至像BUG一样.

所以在这一点上你可以找到有用的东西(但不是很方便):

1)一个代码片段(你可以在wooCommerce docs中找到):

/**
 * Auto Complete all WooCommerce orders.
 */
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order');
function custom_woocommerce_auto_complete_order( $order_id ) {
    if ( ! $order_id ) {
        return;
    }

    $order = wc_get_order( $order_id );
    $order->update_status( 'completed' );
}
Run Code Online (Sandbox Code Playgroud)

但此代码段不适用于BACS*,付款时付款和支票付款方式.它适用于Paypal和信用卡网关支付方式.

*BACS 是直接银行转账付款方式

而......

2)插件: WooCommerce自动完成订单

此插件适用于所有付款方式,但不适用于其他信用卡网关付款方式.

我的问题:

在第1点中使用(作为基础)wooCommerce代码段:

如何实现基于woocommerce支付方式的条件代码?

我的意思是:如果付款方式不是"BACS","付款时付款"和"支票",则应用代码段(对于虚拟产品的付款订单,更新状态为"已完成").

我不是一个wooCommerce巨型专家编码器,所以我还没有找到如何在woocommerce订单中定位付款方式.

一些帮助将是非常好的.

谢谢.

php wordpress payment-gateway orders woocommerce

27
推荐指数
2
解决办法
1万
查看次数