setFunctionHook( 'countries', [ self::class, 'renderCountries' ] ); $parser->setFunctionHook( 'states', [ self::class, 'renderStates' ] ); } public static function renderCountries( Parser $parser, $param1 = '', $param2 = '', $param3 = '' ) { $path = realpath(dirname(__FILE__)); $str = file_get_contents($path . '/countries-states.json'); $json = json_decode($str); $end = ''; // echo '
' . print_r($json, true) . '
'; // return $output; foreach($json->countries as $item) { if ($param1) { if($item->code == $param1) { // echo $item->name; $countries[] = $item->name; } } else { // $countries[] = $item->name; $countries[] = $item->code; } } foreach($countries as $item) { $end .= $item . ','; } return $end; } public static function renderStates( Parser $parser, $param1 = '', $param2 = '', $param3 = '' ) { $path = realpath(dirname(__FILE__)); $str = file_get_contents($path . '/countries-states.json'); $json = json_decode($str); $end = ''; // echo '
' . print_r($json, true) . '
'; // return $output; foreach($json->countries as $item) { if($item->code == $param1) { // echo $item->name; foreach($item->states as $state) { $states[] = $state->name; } } } // return $states; foreach($states as $item) { $end .= $item . ','; } return $end; } }