代码检查一个或另一个复选框,但不能同时检查这两个复选框


code checks one checkbox or the other, but not both

所以,基本上,我有一个函数,当在wordpress上创建帖子时就会运行。我通过添加以下代码修改了此函数。

$episodeID = $_POST['item_meta'][137];
$episodeVersion = $_POST['item_meta'][357];

if ($episodeVersion == "Subbed") { 
    $value = array("Subbed");
    update_field('field_48', $value, $episodeID);
} 
else if ($episodeVersion == "Dubbed") { 
    $value = array("Dubbed");
    update_field('field_48', $value, $episodeID);

}

这段代码基本上说,如果帖子中某个字段的值是"Subbed",那么通过选中"Subbed"复选框来更新另一个复选框字段。如果是"Dubbed",则通过选择"Dubbd"复选框来更新复选框字段。

这非常好,但是没有时间同时选中这两个复选框。如果我添加了一个带有配音的帖子,它会选中配音,然后如果我添加一个带有Subbed的帖子,会取消选中配音并选中Subbed。

所以基本上,我该怎么做,这样它就不会取消选中已经选中的内容。那么,我应该用什么来检查复选框是未选中还是已选中?某种类型的布尔真/假?

好吧,所以我能够操作一些代码,并最终使其工作。

我所要做的就是检查在执行配音if语句时是否已经选中了Subbed复选框,反之亦然。

这是更新后的代码

$episodeID = $_POST['item_meta'][137];
$episodeVersion = $_POST['item_meta'][357];

if ($episodeVersion == "Subbed" && !(get_field('episode_sdversion') && in_array('Subbed', get_field('episode_sdversion', $episodeID))) ) { 
    if (get_field('episode_sdversion') && in_array( 'Dubbed', get_field('episode_sdversion'))) {    
        $value = array("Subbed", "Dubbed");         
    } else {
        $value = array("Subbed");
    }       
    update_field('field_48', $value, $episodeID);
} 
if ($episodeVersion == "Dubbed" && !(get_field('episode_sdversion') && in_array('Dubbed', get_field('episode_sdversion', $episodeID))) ) { 
    if (get_field('episode_sdversion') && in_array( 'Subbed', get_field('episode_sdversion'))) {    
        $value = array("Subbed", "Dubbed");         
    } else {
        $value = array("Dubbed");
    }
    update_field('field_48', $value, $episodeID);

}