Activity_Helper::insert( array $args = array() )
Description #
Insert activity data into the database. $q_id argument cannot be left blank as it is required.
Parameters #
- $argsarray (Optional) Arguments for insert query.
- 'action'
(string) Registered action key. - 'q_id'
(integer) Question id. This is a required argument. - 'a_id'
(integer) Answer id. This argument is optional. - 'c_id'
(integer) Comment id. This argument is optional. - 'user_id'
(integer) User id. This is optional. - 'date'
(string) Date of activity. Current time is used by default.
- 'action'
Source #
File: includes/class/class-activity-helper.php
public function insert( $args = array() ) {
global $wpdb;
$args = wp_parse_args(
$args,
array(
'action' => '',
'q_id' => 0,
'a_id' => 0,
'c_id' => 0,
'user_id' => get_current_user_id(),
'date' => current_time( 'mysql', true ),
)
);
// Check if question id exists.
if ( empty( $args['q_id'] ) ) {
return new WP_Error( 'question_id_empty', __( 'Question id is required.', 'anspress-question-answer' ) );
}
// Check if valid action.
if ( ! $this->action_exists( $args['action'] ) ) {
return new WP_Error( 'not_valid_action', __( 'Not a valid action', 'anspress-question-answer' ) );
}
// split date for validation.
$mm = substr( $args['date'], 5, 2 );
$jj = substr( $args['date'], 8, 2 );
$aa = substr( $args['date'], 0, 4 );
$valid_date = wp_checkdate( $mm, $jj, $aa, $args['date'] );
// Validate date.
if ( ! $valid_date ) {
return new WP_Error( 'invalid_date', __( 'Invalid date', 'anspress-question-answer' ) );
}
// Insert.
$inserted = $wpdb->insert( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
$this->table,
array(
'activity_action' => $args['action'],
'activity_q_id' => $args['q_id'],
'activity_a_id' => $args['a_id'],
'activity_c_id' => $args['c_id'],
'activity_user_id' => $args['user_id'],
'activity_date' => $args['date'],
),
array(
'%s',
'%d',
'%d',
'%d',
'%d',
'%s',
)
);
if ( ! $inserted ) {
return new WP_Error( 'insert_activity_failed', __( 'Failed to insert activity', 'anspress-question-answer' ) );
}
/**
* Hook called right after an activity get inserted to database.
*
* @param array $args Insert arguments.
* @since 4.1.2
*/
do_action( 'ap_activity_inserted', $args );
return $wpdb->insert_id;
}
Expand full source code Collapse full source code View on GitHub: includes/class/class-activity-helper.php:332
Add your comment