亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從插件中的變量創建簡碼

如何從插件中的變量創建簡碼

PHP
手掌心 2022-12-23 13:10:43
我正在使用 WP User Frontend Pro 插件我想使用簡碼來回顯包標題以將其放入面包店視覺中。我所知道的是:這是標題 $pack->post_title;$pack 來自這里:public function current_pack() {    global $pack;    $pack = $this->pack;    if ( ! isset( $this->pack['pack_id'] ) ) {        $pack_page = get_permalink( wpuf_get_option( 'subscription_page', 'wpuf_payment' ) );        return new WP_Error( 'no-pack', sprintf( __( 'You must <a href="%s">purchase a subscription package</a> before posting', 'wp-user-frontend'), $pack_page ) );    }    // seems like the user has a pack, now check expiration    if ( $this->expired() ) {        return new WP_Error( 'expired', __( 'The subscription pack has expired. Please buy a pack.', 'wp-user-frontend' ) );    }    return $pack;}我嘗試做這樣的事情:function wpc_shortcode_pack_title() {global $pack;return $pack->post_title;}add_shortcode( 'sub_name', 'wpc_shortcode_pack_title' );為了解釋更多,第 5 行中的選定代碼在插件頁面中正常工作,但我希望它作為簡碼但它沒有任何幫助嗎?
查看完整描述

1 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

的回調函數add_shortcode()應該返回內容,而不是打印出來。


意思是,你必須return $pack->post_title代替echo $pack->post_title.


像這樣:


function wpc_shortcode_pack_title() {

  global $pack;

  return $pack->post_title;

}


add_shortcode( 'sub_name', 'wpc_shortcode_pack_title' );

編輯:查看“WP User Frontend Pro”的來源后:


$pack似乎WPUF_Subscription::get_subscription()通過傳遞訂閱 ID 獲得了它的價值,訂閱 ID 基本上獲得了具有該 ID 的帖子。


訂閱 ID 似乎是WPUF_Subscription::get_user_pack()通過傳遞用戶 ID 來獲取其價值的。


所以,我想你可以打電話get_current_user_id()嘗試這樣的事情:


function wpc_shortcode_pack_title() {

  $user_id = get_current_user_id();


  if ( ! class_exists( 'WPUF_Subscription' ) ) {

    return 'WP User Frontend Pro is not installed/activated';

  }


  $user_sub = WPUF_Subscription::get_user_pack( $user_id );

  $pack = WPUF_Subscription::get_subscription( $user_sub['pack_id'] );


  return $pack->post_title;

}


add_shortcode( 'sub_name', 'wpc_shortcode_pack_title' );

編輯#2:要獲得過期日期,你會做類似的事情:


function wpc_shortcode_pack_title() {

  $user_id = get_current_user_id();


  if ( ! class_exists( 'WPUF_Subscription' ) ) {

    return 'WP User Frontend Pro is not installed/activated';

  }


  // Get WPUF subscription/pack

  $user_sub = WPUF_Subscription::get_user_pack( $user_id );

  $pack = WPUF_Subscription::get_subscription( $user_sub['pack_id'] );


  // Get expiration date

  $expire = ( $user_sub['expire'] == 'unlimited' ) ? ucfirst( 'unlimited' ) : wpuf_date2mysql( $user_sub['expire'] );


  return sprintf(

    'Subscription name: %1$s | Expire date: %2$s',

    $pack->post_title,

    wpuf_get_date( $expire )

  );

}


add_shortcode( 'sub_name', 'wpc_shortcode_pack_title' );


查看完整回答
反對 回復 2022-12-23
  • 1 回答
  • 0 關注
  • 99 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號