我以一种稍微不同的方式实现了这一点。
在单产品编辑页面中,Woocommerce(WC)能够创建自定义字段。(如果在编辑产品页面中看不到“自定义字段”区域,请选择wordpress管理页面右上角的“屏幕选项”,然后选中“自定义字段”)
因此,我在一个产品上创建了一个“姓氏”自定义字段,通过内置的WC导出功能导出了所有产品,因此我可以看到一个新的“姓氏”字段在csv电子表格中的位置。
然后,在电子表格中,我将所有第二个单词复制到新的自定义字段中,然后将其重新导入,从而用新的自定义字段及其相应的值填充每个产品。
完成后,我找到了几个添加到函数中的代码片段。php。这将“姓氏”字段添加到“orderby”排序中。
/**
* Adds WooCommerce catalog sorting options using postmeta, such as custom fields
* Tutorial: http://www.skyverge.com/blog/sort-woocommerce-products-custom-fields/
**/
function skyverge_add_postmeta_ordering_args( $sort_args ) {
$orderby_value = isset( $_GET[\'orderby\'] ) ? wc_clean( $_GET[\'orderby\'] ) : apply_filters( \'woocommerce_default_catalog_orderby\', get_option( \'woocommerce_default_catalog_orderby\' ) );
switch( $orderby_value ) {
// Name your sortby key whatever you\'d like; must correspond to the $sortby in the next function
case \'surname\':
$sort_args[\'orderby\'] = \'meta_value\';
// Sort by meta_value because we\'re using alphabetic sorting
$sort_args[\'order\'] = \'asc\';
$sort_args[\'meta_key\'] = \'surname\';
// use the meta key you\'ve set for your custom field, i.e., something like "location" or "_wholesale_price"
break;
}
return $sort_args;
}
add_filter( \'woocommerce_get_catalog_ordering_args\', \'skyverge_add_postmeta_ordering_args\' );
// Add these new sorting arguments to the sortby options on the frontend
function skyverge_add_new_postmeta_orderby( $sortby ) {
// Adjust the text as desired
$sortby[\'surname\'] = __( \'Sort by surname\', \'woocommerce\' );
return $sortby;
}
add_filter( \'woocommerce_default_catalog_orderby_options\', \'skyverge_add_new_postmeta_orderby\' );
add_filter( \'woocommerce_catalog_orderby\', \'skyverge_add_new_postmeta_orderby\' );
/**
* This code should be added to functions.php of your theme
**/
add_filter(\'woocommerce_get_catalog_ordering_args\', \'am_woocommerce_catalog_orderby\'); function am_woocommerce_catalog_orderby( $args ) { $args[\'meta_key\'] = \'surname\'; $args[\'orderby\'] = \'meta_value\'; $args[\'order\'] = \'asc\'; return $args; }
如果其他人使用此选项,您可以在WC的“编辑产品”页面中为自定义字段命名。只需确保将上述代码中的所有“姓氏”实例更改为您使用的任何名称即可。
然后我想到,我可以对sku代码做同样的事情:将其作为第二个单词,然后按其排序。
然而,我不能让它工作。我正在使用WOOF product filter插件,该插件也必须进行修改,以使自定义字段排序工作正常。我想这就是问题所在。
我相信我会解决这个问题,上面的内容将适用于常规的WC商店。希望能帮助别人