• Hi,

    I am developing a plugin, and I have some code in my child theme’s functions.php file that I would like to move into the plugin. When I do however, that particular piece of functionality stops. The piece of code in question adds some custom columns to the users table.

    Is there any reason why that would be triggered from within the plugin but would work from the functions.php file?

    This is on a local dev.

Viewing 4 replies - 1 through 4 (of 4 total)
  • Hello MalWalters,

    Can you paste your code stuff that you are putting in your function.php and in plugin file.

    Thanks

    Thread Starter MalWalters

    (@malwalters)

    Hi

    Here’s the code

    <?php
    /******************************************************************************
    * This function adds Membership Number and Expiry Date to the users.php page.
    *
    *
    * Version: 0.5
    * Author: Malcolm Walters
    * Date: April 2016
    *******************************************************************************/
    
    // Add columns
    add_action('manage_users_columns','lpf_add_membership_columns');
    
    function lpf_add_membership_columns($column_headers) {
      // Remove the "Posts" column
      unset($column_headers['posts']);
      // Add Column headers for Membership Number and Expiry Date
      $column_headers['lpf_mem_num'] = 'Membership Number';
      $column_headers['lpf_mem_exp_date'] = 'Membership Expiry Date';
      return $column_headers;
    }
    
    add_action('manage_users_custom_column',  'lpf_show_membership_details', 10, 3);
    
    function lpf_show_membership_details($value, $column_name, $user_id) {
        // Add Query to return Membership Expiry Date
    	$user = get_userdata ( $user_id);
    	$single = true;
    
    	if( $column_name == 'lpf_mem_num' ) {
    
    		$key = "pq_mem_num";
    		$metavalue = get_user_meta($user_id, $key, $single);
    
    		return $metavalue;
        	}
    
    	if( $column_name == 'lpf_mem_exp_date' ) {
    
    		$key = "pq_exp_date";
    		$metavalue = get_user_meta($user_id, $key, $single);
    
    		return $metavalue;
        	}
    }
    ?>
    
    <?php
    /*************************************************************************************
    * Adds Fields to edit-user.php for Club Membership Details (PQ Number and Membership Expiry Date)
    * The following section allows for Logan Club Membership details to be added to user profiles
    * It stores the Club Membership number and the expiry date in the wp_usermeta table
    *
    * Version: 0.5
    * Author: Malcolm Walters
    * Date: April 2016
    **************************************************************************************/
    add_action( 'edit_user_profile', 'extra_user_profile_fields' );
    
    function extra_user_profile_fields( $user ) { ?>
    <h3><?php _e("Logan's Club Membership Status", "blank"); ?></h3>
    
    <table class="form-table">
    <tr>
    <th><label for="pq_mem_num"><?php _e("Logan's Club Membership Number"); ?></label></th>
    <td>
    <input type="text" name="pq_mem_num" id="pq_mem_num" value="<?php echo esc_attr( get_the_author_meta( 'pq_mem_num', $user->ID ) ); ?>" class="regular-text" /><br />
    <span class="description"><?php _e("Logan's Patchwork and Quilting Number. [PQXXXX]"); ?></span>
    </td>
    </tr>
    <tr>
    <th><label for="pq_exp_date"><?php _e("Logan's Club Membership Expiry Date"); ?></label></th>
    <td>
    <input type="date" name="pq_exp_date" id="pq_exp_date" value="<?php echo esc_attr( get_the_author_meta( 'pq_exp_date', $user->ID ) ); ?>" class="regular-text" /><br />
    <span class="description"><?php _e("Expiry Date."); ?></span>
    </td>
    </tr>
    </table>
    <?php }
    ?>

    Thanks for taking the time to have a look. Much appreciated.

    Hello MalWalters,

    Please by adding this code in your plugin file it will definitely help you.

    <?php
    /******************************************************************************
    * This function adds Membership Number and Expiry Date to the users.php page.
    *
    *
    * Version: 0.5
    * Author: Malcolm Walters
    * Date: April 2016
    *******************************************************************************/
    
    // Add columns
    add_action( 'plugins_loaded', 'pluginname_plugin_setup' );
    
    function pluginname_plugin_setup() {
    add_action('manage_users_columns','lpf_add_membership_columns');
    add_action('manage_users_custom_column',  'lpf_show_membership_details', 10, 3);
    add_action( 'edit_user_profile', 'extra_user_profile_fields' );
    }
    
    function lpf_add_membership_columns($column_headers) {
      // Remove the "Posts" column
      unset($column_headers['posts']);
      // Add Column headers for Membership Number and Expiry Date
      $column_headers['lpf_mem_num'] = 'Membership Number';
      $column_headers['lpf_mem_exp_date'] = 'Membership Expiry Date';
      return $column_headers;
    }
    
    function lpf_show_membership_details($value, $column_name, $user_id) {
        // Add Query to return Membership Expiry Date
    	$user = get_userdata ( $user_id);
    	$single = true;
    
    	if( $column_name == 'lpf_mem_num' ) {
    
    		$key = "pq_mem_num";
    		$metavalue = get_user_meta($user_id, $key, $single);
    
    		return $metavalue;
        	}
    
    	if( $column_name == 'lpf_mem_exp_date' ) {
    
    		$key = "pq_exp_date";
    		$metavalue = get_user_meta($user_id, $key, $single);
    
    		return $metavalue;
        	}
    }
    ?>
    
    <?php
    /*************************************************************************************
    * Adds Fields to edit-user.php for Club Membership Details (PQ Number and Membership Expiry Date)
    * The following section allows for Logan Club Membership details to be added to user profiles
    * It stores the Club Membership number and the expiry date in the wp_usermeta table
    *
    * Version: 0.5
    * Author: Malcolm Walters
    * Date: April 2016
    **************************************************************************************/
    
    function extra_user_profile_fields( $user ) { ?>
    <h3><?php _e("Logan's Club Membership Status", "blank"); ?></h3>
    
    <table class="form-table">
    <tr>
    <th><label for="pq_mem_num"><?php _e("Logan's Club Membership Number"); ?></label></th>
    <td>
    <input type="text" name="pq_mem_num" id="pq_mem_num" value="<?php echo esc_attr( get_the_author_meta( 'pq_mem_num', $user->ID ) ); ?>" class="regular-text" /><br />
    <span class="description"><?php _e("Logan's Patchwork and Quilting Number. [PQXXXX]"); ?></span>
    </td>
    </tr>
    <tr>
    <th><label for="pq_exp_date"><?php _e("Logan's Club Membership Expiry Date"); ?></label></th>
    <td>
    <input type="date" name="pq_exp_date" id="pq_exp_date" value="<?php echo esc_attr( get_the_author_meta( 'pq_exp_date', $user->ID ) ); ?>" class="regular-text" /><br />
    <span class="description"><?php _e("Expiry Date."); ?></span>
    </td>
    </tr>
    </table>
    <?php }
    ?>

    Thread Starter MalWalters

    (@malwalters)

    Thanks for the code, however it still is not working.

    Could it be a prioritisation issue with the later code being executed to overwrite/counteract these changes?

Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘Moving functions from functions.php to plugin – stops working’ is closed to new replies.