标签: hook-woocommerce

woocommerce 在前端按库存和缺货对产品进行排序

我想首先在产品类别中展示库存产品,或者如果可能的话,在任何地方展示库存产品,然后我也想在 Woocommerce 中展示缺货产品

实际上有很多产品没有数量但有库存,所以需要检查库存状态,但我更喜欢先有更多数量

在这种情况下,我怎样才能对当前的排序产生影响?非常感谢

sorting wordpress product woocommerce hook-woocommerce

4
推荐指数
1
解决办法
4465
查看次数

如何仅从“woocommerce_get_product_thumbnail()”返回图像源?

echo woocommerce_get_product_thumbnail();
Run Code Online (Sandbox Code Playgroud)

输出整个图像标签,我怎么能只得到图像源。

仅使用 wordpress 解决相同的问题 - https://wordpress.stackexchange.com/questions/9175/how-do-i-get-image-url-only-on-the-post-thumbnail

woocommerce 有可能吗?

woocommerce hook-woocommerce

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

从WooCommerce的“客户”角色隐藏我的帐户中充值的帐户资金

我有一个Woocommerce订阅网站,所以我的大多数客户角色是Subscriber。现在,我想向潜在客户提供一些免费的迷你试用版,并给予他们一些荣誉,Customer因为我们尚未吸引到潜在客户注册订阅。

问题是帐户资金(插件:WooCommerce的WooCommerce帐户资金)显示在其“我的帐户”区域中,允许他们在需要时存入10美元并绕开订阅。我该如何通过Woocommerce挂钩将其隐藏起来?

以下是与“已付款帐户资金”插件的“我的帐户”相关的源代码,摘自 /includes/class-wc-account-funds-my-account.php

<?php
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

/**
 * WC_Account_Funds_My_Account
 */
class WC_Account_Funds_My_Account extends WC_Query {

    /**
     * Constructor
     */
    public function __construct() {
        add_action( 'init', array( $this, 'add_endpoints' ) );
        add_filter( 'the_title', array( $this, 'change_endpoint_title' ), 11, 1 );

        if ( ! is_admin() ) {
            add_filter( 'query_vars', array( $this, 'add_query_vars' ), 0 );
            add_filter( 'woocommerce_get_breadcrumb', array( $this, 'add_breadcrumb' ), 10 );
            add_action( 'pre_get_posts', array( $this, 'pre_get_posts' ), …
Run Code Online (Sandbox Code Playgroud)

php wordpress woocommerce hook-woocommerce woocommerce-subscriptions

4
推荐指数
1
解决办法
115
查看次数

从 WooCommerce 管理面板中删除标题

使用店面主题,我想在登录管理面板 WooCommerce|Products Store Activity| Inbox| Orders| Stock| Reviews| Notices|面包屑时删除面包屑。*请注意,如果您以当前用户而非管理员身份登录,我需要此功能。我使用 css 使用的代码

.woocommerce-layout__header-breadcrumbs {
   display: none !important;
}
.woocommerce-layout {
   display: none !important;
}
Run Code Online (Sandbox Code Playgroud)

截屏

css wordpress woocommerce woothemes hook-woocommerce

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

如何在 WooCommerce 添加到购物车按钮下方添加文本

我尝试在某些类别的产品页面上的 WooCommerce 添加到购物车按钮下方添加一个 div。

我在这里有点不知所措。这段代码没有破坏任何东西,但文本没有显示。

我试过:.woocommerce div.product form.cart::after,但这适用于所有产品。

这是 PHP 代码段:

function add_polarity_info() {
    global $product;
    if( is_product() && has_term( ['telecaster-pickups', 'strat-pickups', 'bass-pickups', 'p90-pickups', 'humbuckers', 'dynasonic-pickups', 'mini-humbuckers'], 'product_cat' )) {
    echo 'If you are pairing with pickups from another manufacturer and are concerned about polarity and phasing, please let us know in the NOTES field on the checkout screen';
}};

add_action( 'woocommerce_after_add_to_cart_button', add_polarity_info() );
Run Code Online (Sandbox Code Playgroud)

有人可以指出我的代码的问题吗?

php wordpress product woocommerce hook-woocommerce

4
推荐指数
1
解决办法
142
查看次数

Woocommerce 审核订单总钩子回显结果两次

我想获取我在我的中使用以下代码的购物车总数functions.php

function display_total(){
    global $woocommerce;
    $newTotal = $woocommerce->cart->get_total();

    echo $newTotal;
};
add_action( 'woocommerce_review_order_before_order_total', 'display_total');
Run Code Online (Sandbox Code Playgroud)

它不是显示一次金额,而是像 那样显示两次$18.00$18.00

执行 a 操作var_dump也会生成 2 行 HTML:

D:\Wordpress\wp-content\themes\new_theme\functions.php:161:string '<span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">&#36;</span>18.00</bdi></span>' (length=128)

D:\Wordpress\wp-content\themes\new_theme\functions.php:161:string '<span class="woocommerce-Price-amount amount"><bdi><span class="woocommerce-Price-currencySymbol">&#36;</span>18.00</bdi></span>' (length=128)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

php wordpress woocommerce hook-woocommerce woocommerce-theming

4
推荐指数
1
解决办法
974
查看次数

将“免费送货”方法设置为 WooCommerce 中选定的默认送货选项

我正在努力更改默认选择的运输选项。仅当客户购物车中的金额超过 70 美元以上时,才会显示“免费送货”送货选项。如果购物车中的金额低于 70 美元,运输选项将不会显示在运输选项中。

如果客户的金额超过 70 美元或以上,则会显示“免费送货”选项,并且它应该是默认选择的送货选项。

我尝试添加以下代码片段,但它似乎对我不起作用,或者修改 ID 时可能出现错误(不确定)。

add_action( 'woocommerce_before_cart', 'set_default_chosen_shipping_method', 5 );
function set_default_chosen_shipping_method(){
    //
    if( count( WC()->session->get('shipping_method_0')['rates'] ) > 0 ){
        foreach( WC()->session->get('shipping_method_0')['rates'] as $rate_id =>$rate)
            if($rate->method_id == 'free_shipping30'){
                $default_rate_id = array( $rate_id );
                break;
            }

        WC()->session->set('chosen_shipping_methods', $default_rate_id );
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这里得到了这个片段的想法

在此输入图像描述

在此输入图像描述

先感谢您!!

php wordpress woocommerce hook-woocommerce shipping-method

4
推荐指数
1
解决办法
2455
查看次数

未捕获的 ArgumentCountError:函数 order_completed() 的参数太少。在 woocommerce_order_status_completed 挂钩上

我收到以下错误:

[2021 年 11 月 30 日 16:08:47 UTC] PHP 致命错误:未捕获的 ArgumentCountError:函数 order_completed() 的参数太少,1 个传入 /home/brantsho/public_html/wp-includes/class-wp-hook.php在第 305 行和 /home/brantsho/public_html/wp-content/themes/glowing/functions.php:28 中预期的第 4 行堆栈跟踪:#0 /home/brantsho/public_html/wp-includes/class-wp-hook。 php(305): order_completed() #1 /home/brantsho/public_html/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #2 /home/brantsho/public_html/wp-includes /plugin.php(470): WP_Hook->do_action() #3 /home/brantsho/public_html/wp-content/plugins/woocommerce/includes/class-wc-order.php(364): do_action() #4 / home/brantsho/public_html/wp-content/plugins/woocommerce/includes/class-wc-order.php(222): WC_Order->status_transition() #5 /home/brantsho/public_html/wp-content/plugins/woocommerce/包括/class-wc-order.php(334): WC_Order->save() #6 /home/brantsho/public_html/wp-content/plugins/woocommerce/includes/class-wc-ajax.php(530): WC_Order ->update_status() #7 /home/brantsho/public_html/wp-incl 在 /home/brantsho/public_html/wp-content/themes/glowing/functions.php 第 28 行

但我的functions.php 看起来不错:

<?php
if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}

define('GLOWING_VERSION', '1.0.0');
define('GLOWING_FILE_HANDLER', basename(get_template_directory()) . '-');

/**
 * Inlcude …
Run Code Online (Sandbox Code Playgroud)

php wordpress orders woocommerce hook-woocommerce

4
推荐指数
1
解决办法
1800
查看次数

注册后如何将 WooCommerce 访客订单链接到客户帐户

我们的场景是:

访客用户无需注册即可进入网站并下一个或多个订单。一段时间后,他决定在该网站上注册。

现在注册后如何将客人订单链接到客户帐户?

我使用以下代码,但此代码仅适用于已经注册但购买时未登录的用户。有什么建议吗?

//assign user in guest order
add_action( 'woocommerce_new_order', 'action_woocommerce_new_order', 10, 1 );
function action_woocommerce_new_order( $order_id ) {
    $order = new WC_Order($order_id);
    $user = $order->get_user();
    
    if( !$user ){
        //guest order
        $userdata = get_user_by( 'email', $order->get_billing_email() );
        if(isset( $userdata->ID )){
            //registered
            update_post_meta($order_id, '_customer_user', $userdata->ID );
        }else{
            //Guest
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

wordpress orders woocommerce hook-woocommerce

4
推荐指数
1
解决办法
2353
查看次数

使用 HPOS 过滤 WooCommerce 中的订单列表

我正在将开源插件转换为 HPOS 兼容。其功能之一是管理中订单列表上的附加过滤器(与订单状态一致),例如: 例子

我似乎无法实际执行查询的修改。pre_get_posts以前,当不再使用 WP_Post 时,我正在挂钩显然不再相关。

然后对于过滤器字段也是如此,我将其挂接到restrict_manage_posts. 找到了等效的钩子:woocommerce_order_list_table_restrict_manage_orders

有人知道要使用哪个钩子吗?

php wordpress orders woocommerce hook-woocommerce

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