BratokHR

Untitled

Jan 20th, 2021
629
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php    
  2. /**
  3.     * Проверка option.
  4.     *
  5.     * В случае, если были найдени отличия/отсутствие
  6.     * параметров, они перезаписываются
  7.     *
  8.     * @since 1.0.0
  9. */
  10. private function check_options()
  11. {
  12.     $opt_wp = get_option( HRLEMON_OPTION );
  13.  
  14.     if ( !is_array( $opt_wp ) )
  15.         return;
  16.  
  17.     foreach( $GLOBALS['hrlemon_settings'] as $set )
  18.     {
  19.         if ( !isset( $set['name'] ) )
  20.             continue;
  21.  
  22.         $bfound = false;
  23.         $key_found = -1;
  24.         foreach( $opt_wp as $key => $val )
  25.         {
  26.             if ( isset( $val['name'] ) && $val['name'] == $set['name'] )
  27.             {
  28.                 $bfound = true;
  29.                 $key_found = $key;
  30.                 break;
  31.             }
  32.         }
  33.  
  34.         if ( !$bfound )
  35.         {
  36.             array_push( $opt_wp, $set );
  37.             continue;
  38.         }
  39.  
  40.         $opt = $opt_wp[$key_found];
  41.         foreach( $set as $key => $val )
  42.         {
  43.             // Значение option['value'] не трогаем
  44.             // его задает сам пользователь, и сбрасывать его не нужно
  45.             if ( $key == 'value' )
  46.                 continue;
  47.  
  48.             if ( !isset( $opt[$key] ) )
  49.             {
  50.                 $opt = array_merge( $opt, array( $key => $val ) );
  51.                 continue;
  52.             }
  53.  
  54.             // По-умолчанию перезаписываем все значения, кроме value
  55.             $opt[$key] = $val;
  56.         }
  57.  
  58.         $opt_wp[$key_found] = $opt;
  59.     }
  60.  
  61.     update_option( HRLEMON_OPTION, $opt_wp );
  62. }
  63.  
  64. ?>
RAW Paste Data