ACF Custom Datatables

Change Column Data Types – Bash Script

This simple script reads a CSV file and outputs that to a PHP function for ACF Custom Datatable to assign a data column type for the fields.

At the moment it only allows for varchar.

1. We’re reading the input file line by line.

2. We’re splitting each line into three variables: datatable, field, and value.

3. We’re creating a function for each line.

4. We’re writing the function to the output file.



echo "/**
 * Column Data Types.
 *" >> output.txt

echo "" >> output.txt

while IFS="," read -r datatable field value; do
	echo "add_filter( 'acfcdt/set_column_data_type/"$datatable"."$field"', '"$field"_set_column_data_type' );
	function "$field"_set_column_data_type( $type ) {
		return 'varchar("$value")';

" >> output.txt
done < <(tail -n +2 $input)

Example CSV File

datatable, field, value

Output Example

1. We’re adding a filter to the acfcdt/set_column_data_type/as_button_group.as_button_group hook.

2. We’re returning the data type varchar(5) for the as_button_group field type.

 * Colunm Data Types.

add_filter( 'acfcdt/set_column_data_type/as_button_group.as_button_group', 'as_button_group_set_column_data_type' );
	function as_button_group_set_column_data_type(  ) {
		return 'varchar(5)';