field->escaped_value(), array( 'name' => '', 'value' => '', ) ); ob_start(); // Do html ?>
types->input( array( 'name' => $this->_name( '[name]' ), 'id' => $this->_id( '_name' ), 'value' => $value['name'], 'desc' => '', 'placeholder' => __( 'Name of the parameter', 'wpgetapi' ), ) ); ?>
types->textarea( array( 'name' => $this->_name( '[value]' ), 'id' => $this->_id( '_value' ), 'value' => stripslashes($value['value']), 'desc' => '', 'rows' => 1, 'placeholder' => __( 'Value of the parameter', 'wpgetapi' ), ) ); ?>
rendered( ob_get_clean() ); } /** * Optionally save the values into separate fields */ public static function maybe_save_split_values( $override_value, $value, $object_id, $field_args ) { // Don't do the override if ( ! isset( $field_args['split_values'] ) || ! $field_args['split_values'] ) return $override_value; $encryption = new WpGetApi_Encryption(); $parameter_keys = array( 'name', 'value' ); foreach ( $parameter_keys as $key ) { if ( ! empty( $value[ $key ] ) ) { $updated_value = $encryption->encrypt( $value[ $key ] ); update_post_meta( $object_id, $field_args['id'] . 'parameter_'. $key, $updated_value ); } } remove_filter( 'cmb2_sanitize_parameter', array( __CLASS__, 'sanitize' ), 10, 5 ); // Tell CMB2 we already did the update return true; } public static function sanitize( $check, $meta_value, $object_id, $field_args, $sanitize_object ) { // if not repeatable, bail out. if ( ! is_array( $meta_value ) || ! $field_args['repeatable'] ) return $check; $encryption = new WpGetApi_Encryption(); foreach ( $meta_value as $i => $param ) { // if both empty, unset and continue if( $param['name'] == '' && $param['value'] == '' ) { unset( $meta_value[ $i ] ); continue; } foreach ( $param as $key => $val ) { $meta_value[ $i ][ $key ] = $key === 'name' ? $val : $encryption->encrypt( $val ); } } return array_filter($meta_value); } public static function escape( $check, $meta_value, $field_args, $field_object ) { // if not repeatable, bail out. if ( ! is_array( $meta_value ) || ! $field_args['repeatable'] ) return $check; $encryption = new WpGetApi_Encryption(); foreach ( $meta_value as $i => $param ) { // if both empty, unset and continue if( $param['name'] == '' && $param['value'] == '' ) { unset( $meta_value[ $i ] ); continue; } foreach ( $param as $key => $val ) { $meta_value[ $i ][ $key ] = $key === 'name' ? $val : $encryption->decrypt( $val ); } } return array_filter($meta_value); } }