Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将WooCommerce品牌名称添加到所有装运方法名称前_Php_Wordpress_Woocommerce_Taxonomy Terms_Shipping Method - Fatal编程技术网

Php 将WooCommerce品牌名称添加到所有装运方法名称前

Php 将WooCommerce品牌名称添加到所有装运方法名称前,php,wordpress,woocommerce,taxonomy-terms,shipping-method,Php,Wordpress,Woocommerce,Taxonomy Terms,Shipping Method,我正在努力工作,如果它是可能的,以预先一个品牌名称的任何航运选项可用。我将开设一家店铺,您每次只能订购一个品牌,我将内置购物车限制,以防止将两个品牌混合在一起 我有一个名为Veeqo的外部订购系统,不需要太多细节,我需要将购物车中产品的品牌名称预先添加到所选的任何装运方法中,以便我可以通过这些装运选项筛选订单。例如 品牌英国第二天 品牌英国3-5天 这能做到吗?如果是,怎么做 意识到我在这里要求很多,但如果有人知道这样做的方法,我将不胜感激!:) 也许是一个函数,它搜索第一行项目中的“品牌”,然

我正在努力工作,如果它是可能的,以预先一个品牌名称的任何航运选项可用。我将开设一家店铺,您每次只能订购一个品牌,我将内置购物车限制,以防止将两个品牌混合在一起

我有一个名为Veeqo的外部订购系统,不需要太多细节,我需要将购物车中产品的品牌名称预先添加到所选的任何装运方法中,以便我可以通过这些装运选项筛选订单。例如

品牌英国第二天 品牌英国3-5天

这能做到吗?如果是,怎么做

意识到我在这里要求很多,但如果有人知道这样做的方法,我将不胜感激!:)


也许是一个函数,它搜索第一行项目中的“品牌”,然后将此值前置到所有装运方法标题中。WooCommerce只会根据国家/地区等向他们显示相关的购物方式。

使用
WooCommerce\u package\u rates
过滤器挂钩中的自定义功能,您将能够将购物车项目品牌名称前置到配送方式标签名称

由于在WooCommerce中启用品牌有多种方法,因此您需要定义您在WooCommerce中启用的品牌插件所使用的分类法……
有关要使用的分类,请参见:

代码进入活动子主题(或活动主题)的functions.php文件。测试和工作

刷新发货缓存:
1). 此代码已保存在function.php文件中
2). 在配送区域设置中,禁用/保存任何配送方法,然后启用“返回/保存”
您已经完成了,您可以进行测试


太神了第一次工作。非常感谢你!
add_filter( 'woocommerce_package_rates', 'prepend_brand_to_shipping_methods', 10, 2 );
function prepend_brand_to_shipping_methods( $rates, $package ){
    // HERE define the taxonomy for product brand (depend of used plugin)
    $taxonomy ='product_brand';

    // Get the first cart item
    $cart_item = reset($package['contents']);

    // Get the product brand term name
    $brand_name = wp_get_post_terms( $cart_item['product_id'], $taxonomy, ['fields' =>'names']);
    $brand_name = reset($brand_name);

    // Loop through shipping rates
    foreach ( $rates as $rate_key => $rate ){
        // Changing shipping method label name
        $rates[$rate_key]->label = $brand_name . ' ' . $rate->label;
    }
    return $rates;
}