bottega/simple-membership/views/payments/admin_add_edit_transaction_manually.php

168 lines
No EOL
8.1 KiB
PHP

<?php
/*******************************************************************
* Render and process the interface for add new transaction manually
******************************************************************/
function swpm_handle_add_new_txn_manually(){
global $wpdb;
echo '<div class="swpm-grey-box">';
SwpmUtils::e( 'You can add a new transaction record manually using this interface. It can be useful if you manually accept cash payment for your memberships.' );
echo '</div>';
if( isset( $_REQUEST['swpm_add_new_txn_save_submit'])){
//Check nonce first
check_admin_referer( 'swpm_admin_add_new_txn_form_action', 'swpm_admin_add_new_txn_form_field' );
$current_date = SwpmUtils::get_current_date_in_wp_zone();
$txn_data = array();
$txn_data['email'] = sanitize_text_field( $_POST['email_address'] );
$txn_data['first_name'] = sanitize_text_field( $_POST['first_name'] );
$txn_data['last_name'] = sanitize_text_field( $_POST['last_name'] );
$txn_data['ip'] = '';
$txn_data['member_id'] = isset ( $_POST['member_id'] ) ? intval( $_POST['member_id' ] ) : '';
$txn_data['membership_level'] = isset ( $_POST['membership_level_id'] ) ? intval( $_POST['membership_level_id' ] ) : '';
$txn_data['txn_date'] = isset ( $_POST['txn_date'] ) ? sanitize_text_field( $_POST['txn_date' ] ) : $current_date;
$txn_data['txn_id'] = isset ( $_POST['txn_id'] ) ? sanitize_text_field( $_POST['txn_id' ] ) : '';
$txn_data['subscr_id'] = isset ( $_POST['subscriber_id'] ) ? sanitize_text_field( $_POST['subscriber_id' ] ) : '';
$txn_data['reference'] = '';
$txn_data['payment_amount'] = isset ( $_POST['payment_amount'] ) ? sanitize_text_field( $_POST['payment_amount' ] ) : '';
$txn_data['gateway'] = 'manual';
$txn_data['status'] = isset ( $_POST['txn_status'] ) ? sanitize_text_field( $_POST['txn_status' ] ) : '';
//Insert the manual txn to the payments table
$txn_data = array_filter( $txn_data );//Remove any null values.
$wpdb->insert( $wpdb->prefix . 'swpm_payments_tbl', $txn_data );
$db_row_id = $wpdb->insert_id;
//let's also store transactions data in swpm_transactions CPT
$post = array();
$post['post_title'] = '';
$post['post_status'] = 'publish';
$post['content'] = '';
$post['post_type'] = 'swpm_transactions';
$post_id = wp_insert_post( $post );
update_post_meta( $post_id, 'db_row_id', $db_row_id );
SwpmLog::log_simple_debug("Manual transaction added successfully.", true);
echo '<div class="swpm-orange-box">';
SwpmUtils::e('Manual transaction added successfully. ');
echo '<a href="admin.php?page=simple_wp_membership_payments">View all transactions</a>';
echo '</div>';
} else {
//Show the form to add manual txn record
swpm_show_add_new_txn_form();
}
}
function swpm_show_add_new_txn_form(){
?>
<div class="postbox">
<h3 class="hndle"><label for="title"><?php echo SwpmUtils::_('Add New Transaction'); ?></label></h3>
<div class="inside">
<form id="pp_button_config_form" method="post">
<table class="form-table" width="100%" border="0" cellspacing="0" cellpadding="6">
<tr valign="top">
<th scope="row"><?php echo SwpmUtils::_('Email Address'); ?></th>
<td>
<input type="text" size="70" name="email_address" value="" required />
<p class="description">Email address of the customer.</p>
</td>
</tr>
<tr valign="top">
<th scope="row"><?php echo SwpmUtils::_('First Name'); ?></th>
<td>
<input type="text" size="50" name="first_name" value="" required />
<p class="description">First name of the customer.</p>
</td>
</tr>
<tr valign="top">
<th scope="row"><?php echo SwpmUtils::_('Last Name'); ?></th>
<td>
<input type="text" size="50" name="last_name" value="" required />
<p class="description">Last name of the customer.</p>
</td>
</tr>
<tr valign="top">
<th scope="row"><?php echo SwpmUtils::_('Member ID'); ?></th>
<td>
<input type="text" size="20" name="member_id" value="" />
<p class="description">The Member ID number of the member's profile that corresponds to this transaction.</p>
</td>
</tr>
<tr valign="top">
<th scope="row"><?php echo SwpmUtils::_('Membership Level'); ?></th>
<td>
<select id="membership_level_id" name="membership_level_id">
<?php echo SwpmUtils::membership_level_dropdown(); ?>
</select>
<p class="description">Select the membership level this transaction is for.</p>
</td>
</tr>
<tr valign="top">
<th scope="row"><?php echo SwpmUtils::_('Amount'); ?></th>
<td>
<input type="text" size="10" name="payment_amount" value="" required />
<p class="description">Enter the payment amount. Example values: 10.00 or 19.50 or 299.95 etc (do not put currency symbol).</p>
</td>
</tr>
<tr valign="top">
<th scope="row"><?php echo SwpmUtils::_('Date'); ?></th>
<td>
<input type="text" size="20" name="txn_date" value="" />
<p class="description">The date for this transaction. Use format YYYY-MM-DD.</p>
</td>
</tr>
<tr valign="top">
<th scope="row"><?php echo SwpmUtils::_('Transaction ID'); ?></th>
<td>
<input type="text" size="50" name="txn_id" value="" />
<p class="description">The unique transaction ID of this transaction so you can identify it easily.</p>
</td>
</tr>
<tr valign="top">
<th scope="row"><?php echo SwpmUtils::_('Subscriber ID'); ?></th>
<td>
<input type="text" size="50" name="subscriber_id" value="" />
<p class="description">The subscriber ID (if any) from the member's profile.</p>
</td>
</tr>
<tr valign="top">
<th scope="row"><?php echo SwpmUtils::_('Status/Note'); ?></th>
<td>
<input type="text" size="50" name="txn_status" value="" />
<p class="description">A status value for this transaction. This will go to the Status/Note column of the transaction record.</p>
</td>
</tr>
</table>
<p class="submit">
<?php wp_nonce_field( 'swpm_admin_add_new_txn_form_action', 'swpm_admin_add_new_txn_form_field' ) ?>
<input type="submit" name="swpm_add_new_txn_save_submit" class="button-primary" value="<?php echo SwpmUtils::_('Save Transaction Data'); ?>" >
</p>
</form>
</div>
</div>
<?php
}