diff --git a/admin/presets/classes/local/setting/adminpresets_admin_setting_configcheckbox.php b/admin/presets/classes/local/setting/adminpresets_admin_setting_configcheckbox.php
index 5a3773867cd..d03d2d50e66 100644
--- a/admin/presets/classes/local/setting/adminpresets_admin_setting_configcheckbox.php
+++ b/admin/presets/classes/local/setting/adminpresets_admin_setting_configcheckbox.php
@@ -16,6 +16,8 @@
 
 namespace core_adminpresets\local\setting;
 
+use admin_setting_configcheckbox;
+
 /**
  * Checkbox setting.
  *
@@ -26,15 +28,15 @@ namespace core_adminpresets\local\setting;
  */
 class adminpresets_admin_setting_configcheckbox extends adminpresets_setting {
 
-    protected function set_value($value) {
-        $this->value = clean_param($value, PARAM_BOOL);
-        $this->set_visiblevalue();
-
-        return true;
-    }
-
+    /**
+     * Sets the visible name for the setting selected value
+     */
     protected function set_visiblevalue() {
-        if ($this->value) {
+        /** @var admin_setting_configcheckbox $settingdata */
+        $settingdata = $this->get_settingdata();
+
+        // We need to compare the "yes" value of the inner checkbox, which isn't necessarily boolean.
+        if ($this->value == $settingdata->yes) {
             $str = get_string('yes');
         } else {
             $str = get_string('no');