如果title包含字符串'aaa','bbb'或'ccc'替换字段{category [1}

时间:2016-05-01 11:52:21

标签: php wordpress wordpress-plugin woocommerce

Stackoverflow的众神,

现在我讨厌成为那个没有正确搜索的“那个人”,但我遇到了一个我需要修复的问题而无法找到我可以使用的解决方案,因为我缺乏编码技能,我的知识几乎没有发现表面。

这就是事情。

我正在使用工具将Feed导入我的网站(WP all Import)作为woocommerceproducts。但是在分类中,饲料供应商犯了错误,我想要解决这些错误,而不是偶尔通过电子邮件发送它们。

即:标题包含像书包,手提包,手拿包等字样,但该产品被归类为“珠宝> CSV或XML中的耳环。

导入工具会询问我在哪里可以找到产品类别,我将其指向节点{category [1]}

但是当类别缺失或有缺陷时,我希望它检查某些单词的标题,如果存在,则将其值更改为找到的单词。

something like: 

[if ({title[1]}contains "satchel") {
    category = "bags > satchel",
} else if ({title[1]} contains clutch) {
    category = "bags > clutch",
} else {
    category = {sub_category[1]} #the normal value if nothing was found 
}]

我找不到将格式放在一起的部分。我可能需要努力实现一个功能,我可以扩展为仅根据标题中某些单词的存在生成类别,但也许当我变得更好时,这将是一个选项。

我希望我能够对问题提供清晰的看法。 “[]”就在那里,因为插件想要输入代码而不是{fieldname [1]},下面是另一个例子:

以下是我能够修复的问题的示例: 在用管道“|”替换斜线“/”之前,我需要将“0/3个月/ 1/2个月”之类的值替换为“0-3个月/ 1-2个月”为wordpress将其识别为单独的值。

[str_replace("/","|",
   str_replace("0/3","0-3",
     str_replace("1/2","1-2",
       str_replace("3/6","3-6",{size[1]}))))]

这些字段也可用于调用函数,但仅限于插件的“专业版”。

非常感谢任何帮助,提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用strpos

示例:

if (strpos($title, "satchel") !== false) {
    $category = "bags > satchel";
}

答案 1 :(得分:1)

所以经过一个下午的探索,测试的东西,并不知道很多关于PHP我在一个朋友的帮助下想出了一个解决方案。

Wp All Import 不允许直接从字段本身自定义php ,但它确实支持自定义php函数,并在导入配置页面的底部提供这些功能的编辑器。我做了以下事情:

<?php


    //Checks Title for keywords and 
    //uses those to create categories
    //We are using our own Main categories so only 
    //sub and subsub categroies need to be created.
    //Call function
    [get_subcat_from_title({title[1]},{category[1]})]
    //Function
    function get_subcat_from_title($title,$defaultcat)
    {    
        if (strpos($title,"Satchel") !== false) {   
            $cat = "Tassen";    
        } elseif (strpos($title,"Travel") !== false) {      
            $cat = "Tassen";     
        } elseif (strpos($title,"Gusset") !== false) {      
            $cat = "Tassen";        
        } else { 
            $cat = $defaultcat;
        }
        return $cat;
    }


    //Checks Title for keywords and uses those to create subcategories
    //Call Function
    [get_subsubcat_from_title({title[1]},{sub_category[1]})]
    //Function
    function get_subsubcat_from_title($title,$defaultcat)
    {    
        if (strpos($title,"Satchel") !== false) {   
            $cat = "Satchel";   
        } elseif (strpos($title,"Travel") !== false) {      
            $cat = "Travel";     
        } elseif (strpos($title,"Gusset") !== false) {      
            $cat = "Gusset";        
        } else { 
            $cat = $defaultcat;
        }
        return $cat;
    }

?>

在Taxonomies,Tags,Categories选项中,我们可以创建我们自己的分层顺序:

[main category]
+[sub category]
++[sub sub category]

主类别字段被赋予我们用作主要类别的名称。 子类别填充了SUBCAT功能 子目录类别用函数SUBSUBCAT

填充 这样,它会以我们自己的名字创建一个父级,一个名为“ Tassen ”的子级,如果有的话存在关键字,以及孙子,其中包含特定关键字

这样,当de提供的Feed中没有正确的类别时,我可以使用各种语句扩展函数。

感谢@sebastianForsberg的回复。

我希望这有助于将来遇到类似问题的任何人。