我已经成功地将WooCommerce更改为在store 页面上显示属性. 然而,我网站是多语言的,我如何使这个功能多语言?

add_action( 'woocommerce_after_shop_loop_item_title', 'display_size_attribute', 5 );
function display_size_attribute() {
    global $product;

    if ( $product->is_type('simple') ) {
        $taxonomy = 'klasse-graafmachine-ton';
        echo '<span class="attribute-s">Klasse graafmachine (t): ' . $product->get_attribute($taxonomy) . '</span>','<br>';
    }
}

推荐答案

您不应该使用custom product attributes(在产品上本地创建),而应该使用在产品属性部分全局设置的全局产品属性分类法.

enter image description here

然后为您的产品属性配置术语...

现在,您将在每个产品上配置属性(并为其 Select 术语):

enter image description here

现在,您可以在多语言插件中将此产品属性及其术语翻译为一个分类,如产品类别或产品标签.

然后,您可以使用以下修改后的代码在归档中显示该属性:

add_action( 'woocommerce_after_shop_loop_item_title', 'display_size_attribute', 5 );
function display_size_attribute() {
    global $product;

    $taxonomy = 'pa_klasse-graafmachine-ton';

    if ( $product->is_type('simple') && ( $term_name = $product->get_attribute($taxonomy) ) ) {
        printf( '<span class="attribute-s">%s: %s</span><br>', wc_attribute_label($taxonomy, $product), $term_name );
    }
}

应该能行得通.

Note:代码中使用的分类法将是(starts always with "pa_").

Php相关问答推荐

msgraph-sdk-php v2如何传递skiptoken到request?

WooCommerce在store 页面上显示兼容多语言的产品属性

无法在WooCommerce中发送客户笔记邮箱通知

WooCommerce:在 checkout 审核单和发票中显示定制产品数据

在WooCommerce获取所有具有全球产品属性品牌的简单产品

限制联系人页面仅允许在WooCommerce中登录的用户

如何在PHP中根据会话将用户重定向到不同的页面?

在WooCommercel邮箱通知上添加来自Apaczka插件的选定交付点

在 WooCommerce 中何时何地执行 woocommerce_order_status_completed_notification 挂钩?

Font Awesome 加载图标未显示在 WooCommerce 管理员列表中

使用帖子 ID 更新 wp 帖子

如何判断php中wordpress路径之外的文件夹是否存在?

woocommerce checkout 页面上的自定义字段

WooCommerce 有关新订单的附加邮箱通知,其中包含具体详细信息

Laravel 10 - 使用缓存对 ThrottleRequest 进行限制

在WooCommerce单产品页面中显示特价产品的节省金额

批量作业(job)提交错误无法处理所有文档,uris 似乎正确?

如何在构建 PHP 类别数组树的递归函数中将父面包屑传递给子项?

路由未定义的 laravel 导出

将加密/解密函数从 PHP 转换为 NodeJS