如何修改 WooCommerce 购物车、结帐页面(主题部分)

     2023-03-25     11

关键词:

【中文标题】如何修改 WooCommerce 购物车、结帐页面(主题部分)【英文标题】:How to modify WooCommerce cart, checkout pages (main theme portion) 【发布时间】:2014-12-04 23:48:10 【问题描述】:

我一直在研究和调整我的自定义 Wordpress 主题和覆盖的 WooCommerce 模板,现在安装了 WooCommerce,以纠正 WooCommerce 页面上出现的一系列小格式问题。我到现在为止购物车和结帐,是的,他们使用cart.php(以及任何结帐php),但也使用主要的Wordpress主题page.php。我已经能够在其他地方使用 is_woocommerce() 条件句,但这里没有,因为我了解到 WooCommerce 文档说不能用于结帐和购物车。

is_woocommerce() - 如果在使用 WooCommerce 模板的页面上返回 true(购物车和结帐是带有简码的标准页面,因此不包括在内)。 http://docs.woothemes.com/document/conditional-tags/

那么我怎样才能改变这些页面的外观呢?我在顶部有一个“查看所有帖子”和一个日期/时间,以及 page.php 的类别侧边栏,出于明显的原因,我不想在结帐和购物车上显示它们,因为它们根本没有意义。我有哪些选择?

我可以让它使用 page.php 以外的其他模板吗?

这是一个选项吗?这是不好的做法......它是否会在每个页面上使用此循环导致更多负载?我把它放在哪里? http://saiyedfaishal.wordpress.com/2014/01/06/check-if-it-is-woocommerce-page/

解决此问题的最佳方法是什么?谢谢你的帮助! 这个问题有点相关 - How to modify woocommerce_before_cart action

【问题讨论】:

【参考方案1】:

另一种完全覆盖 cart.php 的方法是复制:

woocommerce/templates/cart/cart.php to   
yourtheme/woocommerce/cart/cart.php

然后在 yourtheme/woocommerce/cart/cart.php 做任何你需要的事情

【讨论】:

酷,很高兴知道,谢谢!实际上,我已经为archive-product.php 和single-product.php 做到了这一点。我主要关心的是使用主页.php 的 WooCommerce,尽管我猜这更棘手。【参考方案2】:

您可以使用函数:wc_get_page_id( 'cart' ) 来获取页面的 ID。此功能将页面设置用作“购物车”页面,而不是 slug。这意味着当您在设置页面上为“购物车”设置不同的 url 时,它也会继续工作。这适用于所有类型的 Woocommerce 特殊页面,例如“结帐”、“商店”等。

示例:

if (wc_get_page_id( 'cart' ) == get_the_ID()) 
  // Do something.

【讨论】:

谢谢!这是一个更好的解决方案。我把它放好了。 我会注意到 is_cart() 和 is_checkout() 是 WooCommerce 特有的,因此如果您停用/删除 WooCommerce,它们会破坏您的网站,因为您必须记住从您的主题中删除它们文件。【参考方案3】:

可以使用is_cart()条件标签:

if (! is_cart() ) 
  // Do something.

【讨论】:

【参考方案4】:

WooCommerce 有许多用于修改购物车和结帐页面的选项。以下是我推荐的三个:

使用WooCommerce Conditional Tags

is_cart()is_checkout() 函数在其页面上返回 true。示例:

if ( is_cart() || is_checkout() ) 
    echo "This is the cart, or checkout page!";

修改模板文件

主要的购物车模板文件位于wp-content/themes/current-theme/woocommerce/cart/cart.php

主要的结帐模板文件位于wp-content/themes/current-theme/woocommerce/checkout/form-checkout.php

要编辑这些,首先将它们复制到您的子主题中。

使用wp-content/themes/current-theme/page-slug.php

page-slug.php 是第二个将使用的模板,在通过 WP 仪表板手动分配模板之后。

这比我的其他解决方案更安全,因为如果您删除 WooCommerce,但忘记删除此文件,则内部代码(可能依赖于 WooCommerce 函数)不会中断,因为它从未被调用(除非您有带有 slug 的页面slug)。

例如:

wp-content/themes/current-theme/page-cart.php wp-content/themes/current-theme/page-checkout.php

【讨论】:

感谢您的回答。我只想指出 is_cart() 和 is_checkout() 是 WooCommerce 特有的,因此如果您停用/删除 WooCommerce,它们会破坏您的网站。我猜 page-cart.php 仅在主题特别具有支持 WooCommerce 的主题时才存在(例如,我的主题没有它)。如果您将该文件添加到您的主题中,它会使用该文件而不是 page.php 吗? 是的,完全正确。如果您愿意,请随时将其添加到答案中 page-slug.php 是第二个将使用的模板,在通过 wp 仪表板手动分配模板之后 很高兴知道。谢谢。【参考方案5】:

我发现这可以很好地作为 page.php 中的条件,包括 WooCommerce 购物车和结帐屏幕。

!is_page(array('cart', 'checkout'))

【讨论】:

回到这里...我发现这个解决方案的优点是它不使用 WooCommerce 特定的功能,因此如果您停用或删除 WooCommerce,它不会破坏您的网站。当您的网站的某些部分无法运行并且您必须记住您已将 WooCommerce 特定代码添加到某些主题文件中时,这是一个令人讨厌的惊喜。【参考方案6】:

我使用 page-checkout.php 模板来更改我的购物车页面的标题。我在 /wp-content/themes/childtheme/woocommerce/ 中将其重命名为 page-cart.php。这使您可以更好地控制包装 html、页眉和页脚。

【讨论】:

wordpress中的woocommerce购物车结帐页面中的国家列表里面怎么修改

WooCommerce购物车结帐页面中的国家列表怎么修改,我希望将里面的选项作一点修改,但好像只支持修改标题,所以只能问一下能从那个文件中修改。国家列表位于wp--content/plugins/woocommerce/i18n/countries.php其汉化文件位于wp--content/plugi... 查看详情

无法将 woocommerce 购物车页面更改为结帐

】无法将woocommerce购物车页面更改为结帐【英文标题】:Cannotchangewoocommercecartpagetocheckout【发布时间】:2022-01-1314:50:06【问题描述】:我正在尝试将购物车页面更改为结帐页面,以便在购买产品后立即将用户重定向到结帐页面。... 查看详情

Woocommerce 在结帐页面下订单后替换购物车中的产品

】Woocommerce在结帐页面下订单后替换购物车中的产品【英文标题】:WoocommerceReplaceProductinCartUponPlaceOrderinCheckoutPage【发布时间】:2016-09-0423:09:35【问题描述】:我一直在网络上搜索、阅读文档和资料,但我无法弄清楚如何在结帐... 查看详情

从结帐页面 woocommerce 更新购物车中的产品

】从结帐页面woocommerce更新购物车中的产品【英文标题】:Updateproductincartfromcheckoutpagewoocommerce【发布时间】:2018-06-1713:24:37【问题描述】:我正在尝试在使用ajax进行付款(来自订单审核表)之前从结帐页面更新购物车中的产品... 查看详情

WooCommerce ACF 在购物车和结帐页面上显示自定义元数据

】WooCommerceACF在购物车和结帐页面上显示自定义元数据【英文标题】:WooCommerceACFDisplaycustommetadataonCartandCheckoutpage【发布时间】:2016-10-3018:40:29【问题描述】:我想同时在WooCommerce购物车和结帐页面中显示使用AdvancedCustomFields插件... 查看详情

Woocommerce 从结帐小计中排除税款

】Woocommerce从结帐小计中排除税款【英文标题】:WoocommerceExcludeTaxfromCheckoutSubtotal【发布时间】:2016-05-1917:42:38【问题描述】:我目前正在使用下面的钩子从购物车的小计中排除税款。但是文档中没有使用结账功能更换购物车。... 查看详情

在 WooCommerce 的结帐时禁用 AJAX

】在WooCommerce的结帐时禁用AJAX【英文标题】:DisableAJAXoncheckoutforWooCommerce【发布时间】:2015-01-1708:38:36【问题描述】:我想问一下如何在结帐页面(您输入运输和账单信息的地方)禁用AJAX,而不是使用AJAX根据您的位置更新购物... 查看详情

在 Woocommerce 结帐页面中将产品添加到购物车的复选框字段

】在Woocommerce结帐页面中将产品添加到购物车的复选框字段【英文标题】:CheckboxfieldthataddtocartaproductinWoocommercecheckoutpage【发布时间】:2019-05-0406:13:27【问题描述】:在Woocommerce结帐部分,我正在尝试添加一个用于添加其他产品的... 查看详情

Woocommerce 添加到购物车按钮重定向到结帐

】Woocommerce添加到购物车按钮重定向到结帐【英文标题】:Woocommerceaddtocartbuttonredirecttocheckout【发布时间】:2013-03-1315:00:36【问题描述】:我使用插件woocommerce创建了一个电子商务。我只出售订阅,所以“/cart/”页面没用。我试图... 查看详情

在 Woocommerce 购物车、结帐页面、订单和电子邮件通知中的产品标题上方显示品牌名称

】在Woocommerce购物车、结帐页面、订单和电子邮件通知中的产品标题上方显示品牌名称【英文标题】:DisplayBrandNameAboveProductTitleinWoocommerceCart,CheckoutPage,OrdersandEmailNotification【发布时间】:2020-04-0802:21:09【问题描述】:使用以下功... 查看详情

仅在 Woocommerce 结帐页面中将文本附加到总价

】仅在Woocommerce结帐页面中将文本附加到总价【英文标题】:AppendatexttototalpriceonlyinWoocommercecheckoutpage【发布时间】:2019-08-1013:10:00【问题描述】:我有以下代码在购物车和结帐页面的总部分中添加后缀文本:add_filter(\'woocommerce_ca... 查看详情

php在woocommerce中创建直接购物车/结帐/页面添加到购物车按钮。(代码片段)

查看详情

更改 WooCommerce 迷你购物车小部件上的购物车和结帐按钮链接

】更改WooCommerce迷你购物车小部件上的购物车和结帐按钮链接【英文标题】:ChangecartandcheckoutbuttonlinksonWooCommerceminicartwidget【发布时间】:2018-02-2820:01:25【问题描述】:在Woocommerce上,我们如何更改下拉菜单上的“查看购物车”和... 查看详情

如何在 Woocommerce 购物车页面中添加订单备注字段?

】如何在Woocommerce购物车页面中添加订单备注字段?【英文标题】:HowtoaddanordernotesfieldinWoocommercecartpage?【发布时间】:2018-08-0919:59:35【问题描述】:我想在Woocommerce购物车优惠券区域下的Woocommerce购物车页面中添加备注字段。此... 查看详情

当 WooCommerce 购物车包含虚拟产品时,如何隐藏结帐日期选择器?

】当WooCommerce购物车包含虚拟产品时,如何隐藏结帐日期选择器?【英文标题】:HowtohidecheckoutdatepickerwhenWooCommercecartcontainsavirtualproduct?【发布时间】:2022-01-1705:15:26【问题描述】:我需要停用由插件生成的结帐日期选择器当购物... 查看详情

如果 WooCommerce 结帐中存在某些产品类别,请删除其他产品

】如果WooCommerce结帐中存在某些产品类别,请删除其他产品【英文标题】:RemoveotherproductsifcertainproductcategoryispresentonWooCommercecheckout【发布时间】:2022-01-1021:02:01【问题描述】:我正在为客户创建一个登录页面,其中包含类别为lan... 查看详情

Woocommerce:设置结帐字段值

】Woocommerce:设置结帐字段值【英文标题】:Woocommerce:Setcheckoutfieldvalues【发布时间】:2018-01-1801:36:21【问题描述】:对于在我的系统中还不是WP用户的特殊客户群,我将他们引导至一个特殊页面,他们将在其中从一组有限的产品... 查看详情

WooCommerce PayPal IPN(结帐字段)

】WooCommercePayPalIPN(结帐字段)【英文标题】:WooCommercePayPalIPN(checkoutfields)【发布时间】:2018-01-0820:48:26【问题描述】:我正在开发一个自托管的Wordpress网站,我们在该网站上销售实体产品和会员资格,并使用WooCommerce标准插件... 查看详情