在WooCommerce管理设置(/wp admin/admin.php?page=wc settings)中,有几个字段可以设置商店地址(街道、城市、国家)。
如何在主题的模板中检索此内容?我不想把这些信息硬编码到主题中。
在WooCommerce管理设置(/wp admin/admin.php?page=wc settings)中,有几个字段可以设置商店地址(街道、城市、国家)。
如何在主题的模板中检索此内容?我不想把这些信息硬编码到主题中。
存储的物理地址(以及许多其他设置)存储在WP的选项表(WP\\U选项,其中“WP\\U”是站点上使用的表前缀)中。
选项名称为:
woocommerce\\u store\\u address(woocommerce\\u store\\u address\\u 2)woocommerce\\u store\\u city(woocommerce\\u store\\u邮政编码)woocommerce\\u store\\u postcode(woocommerce\\u default\\u country(woocommerce\\u default\\u country)值是个棘手的问题。根据您在设置中的“国家/州”下拉选择器中的选择,存储国家和州/省信息。如果它只是一个国家,它将是国家代码,但如果它是国家“加上”某物,它将用冒号“:”(例如“US:IL”)分隔。
下面是一个通用的美国地址。其他国家/省份可能略有不同,具体取决于(1)woocommerce\\u default\\u country值中的内容(可能只是一个国家)和(2)输出信息的方式。
// The main address pieces:
$store_address = get_option( \'woocommerce_store_address\' );
$store_address_2 = get_option( \'woocommerce_store_address_2\' );
$store_city = get_option( \'woocommerce_store_city\' );
$store_postcode = get_option( \'woocommerce_store_postcode\' );
// The country/state
$store_raw_country = get_option( \'woocommerce_default_country\' );
// Split the country/state
$split_country = explode( ":", $store_raw_country );
// Country and state separated:
$store_country = $split_country[0];
$store_state = $split_country[1];
echo $store_address . "<br />";
echo ( $store_address_2 ) ? $store_address_2 . "<br />" : \'\';
echo $store_city . \', \' . $store_state . \' \' . $store_postcode . "<br />";
echo $store_country;
这当然可以进行大量的压缩并使其更加整洁,但为了清晰起见,我在代码中使用了冗长的代码。此外,根据门店位置等,您可能希望也可能不希望包含国家/州信息,或者您可能希望根据保存的值更改其输出内容。例如,对于美国地址,国家是“美国”,而不是“美国”,州信息是缩写的邮件代码(即伊利诺伊州的“IL”)。因此,实际值以及您打算如何使用它将决定您想要对其执行的输出操作。(希望这有意义。)
而不是get_option()
方法,最好通过WooCommerce的主实例使用内置函数WC()
, 从而访问WC_Countries
类别:
WC()->countries->get_base_address();
WC()->countries->get_base_address_2();
WC()->countries->get_base_city();
WC()->countries->get_base_postcode();
WC()->countries->get_base_state();
WC()->countries->get_base_country();
首先,信息存储的位置可能会改变,但获取信息的方法保持不变。其次,如果插件使用过滤器更改值。查看source 后者显而易见:public function get_base_address() {
$base_address = get_option( \'woocommerce_store_address\', \'\' );
return apply_filters( \'woocommerce_countries_base_address\', $base_address );
}
其他信息:WooCommerce中没有返回店铺(或其他)URL的特定功能(至少我知道)。但有一个功能wc_get_page_id()
这将按名称获取页面ID,并且该ID可以在WP中使用get_permalink()
函数返回URL。
以下是一些示例:
店铺页面URL:
echo get_permalink( wc_get_page_id( \'shop\' ) );
echo get_permalink( wc_get_page_id( \'cart\' ) );
echo get_permalink( wc_get_page_id( \'checkout\' ) );
echo get_permalink( wc_get_page_id( \'myaccount\' ) );
要获取店铺所在国家/地区的全名:
WC()->countries->countries[WC()->countries->get_base_country()];
今晚,当我注意到一个索引时,我正在手动将我正在处理的主题上传到我的wordpress安装中。我的主题文件夹中的php文件。我打开了文件,其中只包含以下三行代码:<?php //silence is golden ?> 这让我很担心,起初我想可能是我不小心把文件上传到了主题目录,但文件的内容并不是我想放的任何东西。所以我的意思是,应该有一个索引。我的wp内容/主题/目录中的php文件?还是有人把它放在那里了。或现在我想起来了,可能是我无意中上传了这个文件,然后一个“黑