好的,我是写PHP的新手,但是我被卡住了。
我有此代码:
add_shortcode( 'mycred_take', 'mycred_pro_render_take_shortcode' );
function mycred_pro_render_take_shortcode( $atts, $label = 'Give Away' ) {
extract( shortcode_atts( array(
'user_id' => '',
'confirm' => '',
'amount' => '',
'unique' => 0,
'ref' => 'mycred_take',
'entry' => '%plural% lose',
'ctype' => 'mycred_default'
), $atts ) );
if ( ! is_user_logged_in() || ! function_exists( 'mycred' ) ) return '';
if ( $user_id == '' )
$user_id = get_current_user_id();
// Load essentials
$user_id = absint( $user_id );
$mycred = mycred( $ctype );
// User is excluded = has no balance
if ( $mycred->exclude_user( $user_id ) ) return '';
// Unique check
if ( $unique == 1 && $mycred->has_entry( $ref, 0, $user_id, '', $ctype ) ) return '';
$balance = $mycred->get_users_balance( $user_id, $ctype );
$output = '';
// If button was pushed
if ( isset( $_POST['mycred-take-points-token'] ) && wp_verify_nonce( $_POST['mycred-take-points-token'], 'mycred-deduct-points' . $ref . $ctype ) ) {
// Deduct
$mycred->add_creds(
$ref,
$user_id,
0 - $amount,
$entry
);
// Update balance
$balance = $balance - $amount;
}
// Too low balance
if ( $balance < $amount ) return '';
return $output . '<form action="" method="post" id="mycred-take-shortcode' . $ref . $ctype . '"><input type="hidden" name="mycred-take-points-token" value="' . wp_create_nonce( 'mycred-deduct-points' . $ref . $ctype ) . '" /><input type="submit" class="button" value="' . $label . '" /></form>';
}
这是一个Wordpress简码。我想要在表单提交和数据库更新后刷新页面。由于此代码当前关闭且页面未更新(如果我手动刷新页面,则数据库已更新,并且会显示更改)。我尝试使用onSubmit =“ window.location.reload()”,action =“”代码,但无效。
答案 0 :(得分:0)
您可以在返回之前添加它
header("Refresh:0");
答案 1 :(得分:0)
嘿,Meil Helt,请尝试用下面的代码替换您的代码。
add_action("init","start_ob_start_cb");
function start_ob_start_cb()
{
ob_start();
}
add_shortcode( 'mycred_take', 'mycred_pro_render_take_shortcode' );
function mycred_pro_render_take_shortcode( $atts, $label = 'Give Away' ) {
extract( shortcode_atts( array(
'user_id' => '',
'confirm' => '',
'amount' => '',
'unique' => 0,
'ref' => 'mycred_take',
'entry' => '%plural% lose',
'ctype' => 'mycred_default'
), $atts ) );
if ( ! is_user_logged_in() || ! function_exists( 'mycred' ) ) return '';
if ( $user_id == '' )
$user_id = get_current_user_id();
// Load essentials
$user_id = absint( $user_id );
$mycred = mycred( $ctype );
// User is excluded = has no balance
if ( $mycred->exclude_user( $user_id ) ) return '';
// Unique check
if ( $unique == 1 && $mycred->has_entry( $ref, 0, $user_id, '', $ctype ) ) return '';
$balance = $mycred->get_users_balance( $user_id, $ctype );
$output = '';
// If button was pushed
if ( isset( $_POST['mycred-take-points-token'] ) && wp_verify_nonce( $_POST['mycred-take-points-token'], 'mycred-deduct-points' . $ref . $ctype ) ) {
// Deduct
$mycred->add_creds(
$ref,
$user_id,
0 - $amount,
$entry
);
// Update balance
$balance = $balance - $amount;
wp_redirect(get_permalink()); die();
}
// Too low balance
if ( $balance < $amount ) return '';
return $output . '<form action="" method="post" id="mycred-take-shortcode' . $ref . $ctype . '"><input type="hidden" name="mycred-take-points-token" value="' . wp_create_nonce( 'mycred-deduct-points' . $ref . $ctype ) . '" /><input type="submit" class="button" value="' . $label . '" /></form>';
}