如何使用str_replace,WordPress钩子和WooCommerce函数

时间:2013-03-13 05:55:55

标签: php wordpress wordpress-plugin hook woocommerce

在WooCommerce中,有一个主要的模板,一切都在运行。

此处:https://github.com/woothemes/woocommerce/blob/master/woocommerce-template.php#L1315

line 1315向下,我们开始使用html进行结帐,但问题是所有内容都在<p>标记中。我想将其更改为<div><li><dd>(未定)。尽管如此,我想改变标签。

我希望通过str_replace("<p","<div",$some_variable);str_replace("/p>","/div>",$some_variable);来做这件事,但我对要调用的钩子感到非常困惑。

哦,我不编辑主文件的原因是因为插件的每次更新都会被覆盖并且效率低下:]

1 个答案:

答案 0 :(得分:0)

在Switch的末尾,您可以编辑if语句,使其看起来像这样 第1468行

自:

if ( $args['return'] ) return $field; else echo $field;

要:

if ( $args['return'] ) {
    str_replace("<p","<div",$field);
    str_replace("/p>","/div>",$field);
    return $field;
} else {
    str_replace("<p","<div",$field);
    str_replace("/p>","/div>",$field);
    echo $field;
}

或者您可以在中断

之前将其添加到每个案例
case "country" :

    ...
    ...
    ...

    str_replace("<p","<div",$field);
    str_replace("/p>","/div>",$field);
break;       

您可以尝试编辑模板

http://docs.woothemes.com/document/template-structure/

  

您可以通过覆盖以升级安全的方式编辑这些文件。   只需将其复制到主题名为/ woocommerce的目录中,   保持相同的文件结构。

     

示例:要覆盖管理员订单通知,请复制:   woocommerce / templates / emails / admin-new-order.php to   yourtheme / woocommerce /电子邮件/管理新-order.php

     

复制的文件现在将覆盖WooCommerce默认模板   文件。不要在核心插件本身中编辑这些文件   在升级过程中被覆盖,任何自定义都将被覆盖   迷路了。