在 WooCommerce 产品目录上显示 Dokan 供应商国家
Show Dokan vendor country on WooCommerce product catalog
谁能帮我解决这个代码
而不是显示国家,而是显示作者
你们能告诉我我在这段代码上做错了什么吗?
add_action( 'woocommerce_after_shop_loop_item_title','sold_by' );
function sold_by(){
?>
<?php
global $product;
$seller = get_post_field( 'post_author', $product->get_id());
$author = get_user_by( 'id', $seller );
$store_info = dokan_get_store_info( $author->ID );
$address = dokan_get_store_info( $author->address );
?>
<span class="details">
<?php printf( 'Origin: %s', $author->display_name, $address ); ?>
</span>
<?php
}
查看此屏幕截图,显示作者来源而非国家/地区:
尝试以下操作:
add_action( 'woocommerce_after_shop_loop_item_title','dokan_store_country' );
function dokan_store_country(){
global $product;
$seller_id = get_post_field( 'post_author', $product->get_id());
$seller = new WP_User( $seller_id );
$countries = WC()->countries->get_countries();
$store_data = dokan_get_store_info( seller_id );
if ( isset( $store_data['country'] ) ) {
$store_country = $store_data['country']; // Try to get seller store country
} elseif( isset( $countries[$seller->billing_country] ) ) {
$store_country = $countries[$seller->billing_country]; // Try to get seller billing country
} else {
return; // Exit
}
echo '<span class="details">' . sprintf( __('Origin: %s'), $store_country ) . '</span>';
}
未经测试,它可以工作。
谁能帮我解决这个代码 而不是显示国家,而是显示作者 你们能告诉我我在这段代码上做错了什么吗?
add_action( 'woocommerce_after_shop_loop_item_title','sold_by' );
function sold_by(){
?>
<?php
global $product;
$seller = get_post_field( 'post_author', $product->get_id());
$author = get_user_by( 'id', $seller );
$store_info = dokan_get_store_info( $author->ID );
$address = dokan_get_store_info( $author->address );
?>
<span class="details">
<?php printf( 'Origin: %s', $author->display_name, $address ); ?>
</span>
<?php
}
查看此屏幕截图,显示作者来源而非国家/地区:
尝试以下操作:
add_action( 'woocommerce_after_shop_loop_item_title','dokan_store_country' );
function dokan_store_country(){
global $product;
$seller_id = get_post_field( 'post_author', $product->get_id());
$seller = new WP_User( $seller_id );
$countries = WC()->countries->get_countries();
$store_data = dokan_get_store_info( seller_id );
if ( isset( $store_data['country'] ) ) {
$store_country = $store_data['country']; // Try to get seller store country
} elseif( isset( $countries[$seller->billing_country] ) ) {
$store_country = $countries[$seller->billing_country]; // Try to get seller billing country
} else {
return; // Exit
}
echo '<span class="details">' . sprintf( __('Origin: %s'), $store_country ) . '</span>';
}
未经测试,它可以工作。